淘先锋技术网

首页 1 2 3 4 5 6 7

1、检测到Include错误,请更新includePath)(明明有头文件,却找不到)

如果本身没有头文件,肯定是找不到的了。比如,没有安装c语言的运行环境,是没有sdtio.h文件的,再怎么包含还是找不到的,需要先安装c语言的运行环境。

问题描述:
工程里面有指定的头文件,却显示无法找到。

解决思路
更新includePath,添加头文件的路径,告诉vsc去哪里找我写的头文件。

解决步骤:
1.打开json配置文件
在软件界面按住Ctrl+Shift+P,在软件上方出现输入框中输入:C/C++:Edit Configurations。选择第一个配置JSON配置。


2.编辑配置文件
经过第二步,.vscode目录下面会自动添加了一个c_cpp_properties.json。在c_cpp_properties.json中加入自己需要的头文件路径。如图。

添加完成后如图。

保存c_cpp_properties.json即可大功告成。

结果
警告消失了,恭喜你可以正常查看定义了。


注意
1..vscode文件夹要放置在工作区的根目录
2.注意路径添加的格式。以逗号隔开,最后一行可以不用逗号。
3.注意将工作区保存的文件ledc_bsp.code-workspace和.vscode在同一级目录。


4.建议包含的路径使用相对路径。(不会相对路径,写绝对路径也行)

PS:${workspaceFolder}为当前工作区的路径,以${workspaceFolder}开头的路径就是相对工作区的路径。因为使用绝对路径时,当工作区的路径改变(比如从d盘移到e盘),又会陷入找不到头文件的窘境。workspaceRoot已经弃用了

2 基础环境C/C++”插件

“C/C++”插件是来自微软官方的 C/C++ 插件,必备的插件,是代码跳转、自动补全、代码大纲显示等功能的基础。但是C/C++经常无法跳转到定义,只能跳转头文件声明

 

3 GNU Global工具,他能实现source insight的全局搜索,且能弥补基础工具的缺陷,但是还是不太智能,需要手动操作,且没明显菜单

global管理工具分为两部分:

  • vscode的gun global插件
  • 本地的global工具

1、GNU Global插件工具

GNU Global是实现函数跳转的基础工具,VSCode中提供了“C/C++ GNU Global”插件:

  • 下载地址:http://adoxa.altervista.org/global/,安装最新版即可
  • 将global的bin路径添加到系统环境变量Path中,我的路径是D:\\Program Files (x86)\\glo668wb\\bin\\gtags.exe。

vscode配置
点击左下角【设置】图标打开设置页面,选中用户或工作区(如果配置了工作区)标签页,点击右上角图标【打开设置(json)】,最后添加如下内容:

    "gnuGlobal.globalExecutable": "D:\\setup\\global\\bin\\global.exe",
    "gnuGlobal.gtagsExecutable": "D:\\setup\\global\\bin\\gtags.exe",
    "gnuGlobal.completion": "Disabled"
其中,gnuGlobal.completion配置项是为了启用vscode自带的代码自动补全功能,因为不禁用global自动补全功能的话,有些变量输入时无法进行自动补全。
 

  • Auto Update配置为“Disable”

这是因为我们的工程文件太大,一般的文件大于50MB就要禁用此项功能。配置源码改变时,动态加载。建议关闭该选项,不然每次源码代码都会卡到。

  • completion配置为“Disable”

是为了启用VSCode自带的代码自动补全功能,因为不禁用global自动补全功能的话,有些变量输入时无法进行自动补全。

3 C++ Intellisense和Gtags插件

搜索C++ Intellisense和Gtags插件,并安装。
C++ Intellisense和Gtags插件都是依赖GNU Global的,可以实现函数跳转功能,如下图:

安装完毕,确认是否安装成功

然后使用F1,或者查看/命令面板,通过Shown GNU Global Version命令查看配置是否成功,如果成功,会在VSCode的右下脚显示这样的内容: 

4 链接符号生成

安装完毕后,首先使用VSCode打开工程文件夹,使用方法:

方法一:

法一,在VSCode中按F1,输入Global:Rebuild Gtags
Database,回车,此时更新的是在VSCode打开得所有文件夹。

最终可以在工程中会创建GPATH、GRTAGSGTAGS三个文件,(根据文件夹大小,扫描时间也有不同),待扫描完毕后,就可以使用函数跳转功能了

 

外,如果代码有改动需要使用global -u更新数据库文件,可在User Setting下设置codegnuglobal.autoupdate=false即可自动更新。