Visual Studio 代码的 Arduino 多文件代码

Multi File Codes for Arduino for Visual Studio Code

我正在将 VS Code 与 Arduino Mega 一起使用,我正在尝试找出实现 multi-file 工作流程的最佳方法。到目前为止,我已经能够合并一个 header 文件,但是我不确定如何获得扩展以将其他 .cpp 文件包含到构建中。

当前文件夹结构:

-Workspace
---main
-----main.ino
---src
-----add.cpp
-----add.h

所以它可以很好地构建 main.ino,并且可以很好地包含 header,但当然它不会编译 add.cpp。这并不意外,因为我没有告诉编译器包含它。对于 g++ 编译,我总是只包含 .cpp 文件作为参数,即 tasks.json 中的“${fileDirname}\*.cpp”。我找不到关于如何使用 Arduino for VS Code 扩展执行类似操作的任何好的说明。让 VS Code 为 Arduino 构建所有相关 .cpp 文件的最佳方法是什么?

谢谢!

通过使用免费的 platformio plugin for vs 代码,简单明了。我找到的使用 arduino 的最佳解决方案。

该插件可靠、平台无关、开源,您可以使用头文件管理项目,链接和编译通过对话完成。文档也写得很好。

我希望你和我一样喜欢用它编程:)

cpp 文件应该已编译,但如果需要则链接。您不需要告诉编译器编译该文件。只需在两个文件中包含 header 文件:main.cpp 和 add.cpp.

您的 header 文件必须类似于此

#ifndef ADD_H__
#define ADD_H__

//All your code

#endif //ADD_H__

这个预编译器技巧将允许您在任何地方包含您的 header,但会阻止重新定义。

我找到了这个问题的临时解决方案,如果它是一个好的,就专业编码指南而言,现在不要。

比如说,我们有以下结构:

-Workspace
---main
-----main.ino
---src
-----add.cpp
-----add.h

然后在 main:

#include <Wire.h>
#include "src/add.h"

void setup(){
    your code here
}

contine the code.

然后在 add.h:

#ifndef _ADD_H_
#define _ADD_H_

Your code

#include "add.cpp"
#endif

add.cpp中:

#include "add.h"

your code comes here

然后库 add 的源代码也应该被编译。 我遇到了一个类似的问题,并找到了这个线程。我提出的这个解决方案适用于我,无需使用 platform.io(这对我来说不是一个选项)。但是就像我说的,我不知道这是否符合一些专业的编码指南。