如果代码在多个文件中,我在为 Arduino 编译代码时遇到问题。我过去一直在做的是有一个脚本连接另一个目录中的文件和make
那里的项目。我希望能够直接从我的构建文件夹中编译,而不必费劲地确保所有内容都以正确的顺序定义等。
我正在使用avrdude
从 Linux 命令行编译,因为 Arduino IDE 不能很好地与我的窗口管理器配合使用。当我使用多个文件(使用适当#include
的语句)时,我得到以下性质的错误,但对于我的所有方法和变量。
./../lib/motor.ino:3:21: error: redefinition of ‘const long unsigned int MOVE_DELAY’
./../lib/motor.ino:3:21: error: ‘const long unsigned int MOVE_DELAY’ previously defined here
唯一MOVE_DELAY
使用的其他地方是void loop()
函数内部,它不会在那里重新定义它。如果将代码连接到一个文件中并make
在该目录中运行,该代码也可以正常编译,但如果它们位于包含包含的单独文件中,则不能。