我在移植调试LCD显示屏时,明明已经包含了头文件,复制过来的文件也在目录中: 可编译时却报错,提示未定义的引用: 请问这应该是什么原因引起的?
在排查问题的过程中,发现在lcd.c文件的包含头文件有问题,为什么在这里无法包含头文件呢?
总算将图片上传成功了。
但我就有点不明白,我又没有改动这些文件内容或位置,而且在其它地方可以包含,为什么在此却出错呢?
在lcd.h中能够正常包含mx_gpio_default.h:
但是在lcd.c文件中包含lcd.h头文件时却提示包含mx_gpio_default.h错误:
请问这应该如何解决?
这些问题都是添加了lcd.c和lcd.h文件造成的,我是直接将这些文件拷贝复制到项目文件夹中,是不是还需要在哪里添加记录?
通常要看看实际构建中是否包含所在目录,关键是查看编译器收到的命令,而不只是看 VS Code 的
includePath查看
CMakeLists.txt中是否有类似设置,可以试试我添加了这两行,但编译报错:
我将其中的application.c改为lcd.c也同样报错。
)
我将拷贝粘贴过去的几个.c和.h文件删除,然后在VS Code里建立新的文件,依旧报错,证明不是拷贝粘贴的原因。
反复测试发现是在这些新增的文件中不能包含main.h和mx_gpio_default.h这类头文件,一旦包含了这类头文件就提示错误。