构建ESP32项目报错“undefined reference”

开发环境:ESP32-platformio-arduino

语言:C/C++

在main.cpp(主程序)里面使用了自己编写的头文件的内容,语法上没有错误,头文件和.cpp文件都放在了正确的目录下面(头文件在include文件夹下,.cpp在src文件夹下),构建项目的时候总是出现类似于  undefined reference to `DisplayManager::DisplayManager()' 这种错误,

尝试过网上的其他方法,编辑 c_cpp_properties.json但是没有任何效果,错误如下图所示,纯粹的折磨,改了半宿没改明白。

read-normal-img

后来把build终端里的log复制到记事本里面去找,

read-normal-img

如上图所示,蓝色光标标出来的main.cpp.o这是log里面第一次编译mian.cpp,下面再次出现main.cpp就是报错了,说明编译器只编译了mian.cpp,此时在我的src文件夹里还有一个DisplayManager.cpp编译器并没有编译,而这个错误提示相关的关键依赖均来自于DisplayManager.cpp。

read-normal-img

这个时候就想到要修改项目配置文件,platformio的配置文件是platformio.ini

默认的情况下,这个配置文件中:

build_src_filter =

    +<D:\work\esp32dev\src\mian.cpp>

这个是默认的配置,意思是编译器在构建项目的时候只会编译mian.cpp

应该改为:

build_src_filter =

    +<D:\work\esp32dev\src>

这样编译器就会编译src文件夹下的所有文件了,项目成功build!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值