你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

包含头文件的疑虑?

[复制链接]
老牛洋车 提问时间:2026-10-28 21:35 / 未解决

我在移植调试LCD显示屏时,明明已经包含了头文件,复制过来的文件也在目录中:

Lcd_08.png

可编译时却报错,提示未定义的引用:

Lcd_05.png

请问这应该是什么原因引起的?

赞 收藏 评论10 发布时间:2026-10-28 21:35

举报

10个回答
老牛洋车 回答时间:2026-10-29 09:24:17

在排查问题的过程中,发现在lcd.c文件的包含头文件有问题,为什么在这里无法包含头文件呢?

老牛洋车 回答时间:2026-10-29 09:46:04
图片上传失败。
老牛洋车 回答时间:2026-10-29 09:48:55

Lcd_11.png

老牛洋车 回答时间:2026-10-29 09:49:37

总算将图片上传成功了。

老牛洋车 回答时间:2026-10-29 09:59:24
原来将光标移动到出错代码上会出现提示信息:
Lcd_12.png
但我就有点不明白,我又没有改动这些文件内容或位置,而且在其它地方可以包含,为什么在此却出错呢?
老牛洋车 回答时间:2026-10-29 11:03:17

在lcd.h中能够正常包含mx_gpio_default.h:

Lcd_13.png

但是在lcd.c文件中包含lcd.h头文件时却提示包含mx_gpio_default.h错误:

Lcd_14.png

请问这应该如何解决?

老牛洋车 回答时间:2026-10-29 12:51:28

这些问题都是添加了lcd.c和lcd.h文件造成的,我是直接将这些文件拷贝复制到项目文件夹中,是不是还需要在哪里添加记录?

butterflyspring 回答时间:2026-10-29 15:30:33

通常要看看实际构建中是否包含所在目录,关键是查看编译器收到的命令,而不只是看 VS Code 的 includePath

查看 CMakeLists.txt 中是否有类似设置,可以试试

VSCODEaddapplication.PNG

老牛洋车 回答时间:2026-10-29 21:20:53
butterflyspring 发表于 2026-10-29 15:30
通常要看看实际构建中是否包含所在目录,关键是查看编译器收到的命令,而不只是看 VS Code 的 includePath
...

我添加了这两行,但编译报错:

Lcd_16.png

我将其中的application.c改为lcd.c也同样报错。
)

老牛洋车 回答时间:2026-10-29 21:28:27

我将拷贝粘贴过去的几个.c和.h文件删除,然后在VS Code里建立新的文件,依旧报错,证明不是拷贝粘贴的原因。

反复测试发现是在这些新增的文件中不能包含main.h和mx_gpio_default.h这类头文件,一旦包含了这类头文件就提示错误。

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版