我正在尝试添加一个cpp文件到arduino项目,它具有以下设置...
project
--folder
--foo.h
--foo.cpp
--project.ino
我在project.ino
的顶部有一个#include "folder/foo.h
。但是,虽然头文件提供了函数的原型,但函数定义在cpp文件中。当我尝试使用Arduino IDE编译代码时,它失败并显示错误Undefined reference to 'bar()'
和bar()
位于foo.cpp
中
我查看了this,但我没有sketch/import library
的设置(但是我有sketch/include library
,但是我没有看到任何接近于使用自定义文件夹位置的设置)
我也看过this。但与上面一样,该设置在我的ide中不存在。(我最近下载的)
代码
//project.ino
#include "folder/foo.h"
void setup() {
Serial.begin(9600);
}
void loop() {
bar();
}
//folder/foo.h
#include "Arduino.h"
void bar();
//folder/foo.cpp
#include "foo.h"
void bar() {
Serial.println("bar");
}
错误
/tmp/ccNTRFfU.ltrans0.ltrans.o: In function `loop':
/home/temporary/project/project.ino:9: undefined reference to `bar()'
collect2: error: ld returned 1 exit status
exit status 1
我期望发生的是一种链接cpp文件夹的方法,而不必将所有文件放在项目的同一根文件夹中。
--编辑1:添加代码
--编辑2:添加#include "Arduino.h"
--编辑3:添加Serial.begin(9600);
发布于 2019-04-15 15:46:52
在项目中为每个文件打开一个选项卡。您可以创建新文件或将现有文件导入到项目中。这样你就可以使用多个*.ino
、*.c
、*.cpp
和*.h
文件。我找不到导入本地目录或配置项目结构的方法。
https://stackoverflow.com/questions/55684371
复制相似问题