| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 关于VScode不能打开头文件的问题 -> 正文阅读 |
|
[开发工具]关于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卡上文件的解析工作甩出去,这种纯软件的事情让我一个搞单片机的去做,就是为难我胖虎。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:14:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |