关于VScode不能打开头文件的问题

这个问题看似简单,你去搜,10个有9个告诉你在C++配置里包含下路径就行了。

但实际并不能100%解决问题。有的方法下面有评论,就会看到有人说问题依然存在。

首先,我不知道那些用VScode开发别的语言或者纯软件的人是什么情况。至少我用来开发ESP32是有这个问题的。

工程下,想在comp1.c(和main.c不在一个文件夹里,但2个文件夹并列在工程文件夹里)里写个SD卡的操作程序,结果vscode就死活不认与SD卡的API有关的那几个头文件。

比如#include "sdmmc_cmd.h"和#include "esp_vfs_fat.h" 哪怕我直接输入绝对路径不行。

在“C/C++: 编辑配置(UI)”里如此“C:/Users/a000021/Desktop/esp-idf/components/fatfs/**”设置,甚至直接指定也不行。

哪怕我使用了的相关函数,点转到声明,它都能跳转进头文件里,但vscode就是一直提示打不开。

怎么解决的?

把SD卡的操作程序放在main.c里,头文件加到main.c上,就能打开了。而且这时候你到comp1.c里看,它还是不认。也就是说#include "sdmmc_cmd.h"和#include "esp_vfs_fat.h" 只能用在main.c里。(写这个时,SD卡操作程序已经跑通了。)

想来想去,只有一种可能,就是工程的C/C++: 编辑配置c_cpp_properties.json文件里写的那些包含路径,只对main有效,或者就是只对工程的第一文件夹有效(待验证)。

这就很奇怪,DSP的CCS也好,MDK、IAR也好,只要在软件设置里设置了保护路径,那么整个工程里大家谁保护头文件都可以。

唯独VScode和别人不一样。目前我只能这么理解。幸亏单片机搞了好多年,脑子里一直有根弦绷着,就是没啥是不可能的,所以没耽误多长时间就发现这个问题。说白了就是坑踩的多了,干啥都陪着小心,但这个VScode也是真的和别人太不一样了,对于开发单片机的转纯软件嵌入式的友好度真是差的厉害。

回到问题,至于说为什么,我猜大概和cmakr有关,也可能和json在描述上有关,里面有2个路径,一个是包含路径includePath,一个是浏览路径 browse": {  "path " } 。

这2个我有预感,不搞明白将来都是大坑。不能光靠看例程解决。

情况暂时记录到这里,回头测试一下把路径放下面这个里什么效果。

另外,公司好几十号搞软件的,我没必要自己死磕,周一抓几个年轻人问问。顺道把SD卡上文件的解析工作甩出去,这种纯软件的事情让我一个搞单片机的去做,就是为难我胖虎。

补充一下,问题在隔天后彻底解决了,见下另一篇文章链接。另外然后公司还真就几十号搞软件的,就一个写前端(话说我都不确定前端是啥,网页?)在用VScode,我这问题最后经理都没辙,最后还是自己静下心来摸索出来的。果然公司目前嵌入式、偏硬件的程序就只能靠我一个人搞了。话说他们几个搞安卓驱动,平台移植的不需要懂硬件程序吗?

https://mp.csdn.net/mp_blog/creation/editor/121614164

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值