VSCode下C/C++环境配置

1. VSCode软件下载安装

官网下载到 VSCode 。

VScode可以在windows下加载samba服务的linux 目录作为工作文件夹(远程映射为Z盘)。好像是有linux版本的。因为是基于浏览器的技术实现的,跨平台。

2. VSCode插件下载和安装

在这里,要介绍两种实现 C/Cpp 代码自动补全,函数跳转的实现方法。

2.1 方法一:使用最新的2个插件和gtags软件,实现 代码自动补全、函数跳转

如果网络通,以下方式设置代理:

1、点击文件 -> 首选项 -> 用户设置

2、再右侧添加代理配置

    "http.proxy": "http://xxx.xxx.com.cn:80",
    "http.proxyStrictSSL": false

3、重启VS code, 点击侧边栏的Extensions按钮,键入python

工作区 1_028.png

设置代理后,进入 查看菜单-扩展,输入插件。

或者采用查看-命令面板-从VSIX安装离线文件安装下面2个插件。插件在外网可以从网页下载。

微软自家的 C/C++ 第一个插件。 ms-vscode.cpptools  

下载gtags 第二个插件 , C++ Intellisense(austin.code-gnu-global)

下载第三个软件gnu gtags ,解压即可。

安装第一个插件  cpptools , 微软自家的 C/C++ 插件 ms-vscode.cpptools  

 安装后重启 VSCode ,让插件生效。

经过测试,这种情况下新版微软c/c++cpptools 插件是经常不能跳转。原因待查。

最新补充:注意看到网上有说法,此款插件设置头文件路径即可跳转定义。但是对大型代码,头文件路径很多的情况,貌似不是很可行,需要的可自行测试,有结果方便请共享一下评论一下。多谢!

本文推荐通过安装下面的  解析gtags符号的 C++ Intellisense插件和 gtags软件,经过测试可以完美跳转符号定义。无需任何操作,只需要生成符号缓存,占用磁盘空间,即可跳转,空间换时间。

请安装第二个插件 C++ Intellisense(austin.code-gnu-global) , 同样点击重启生效。

接下来我们需要下载 第三个软件  gtags 来支持 C++ Intellisense 插件。插件可以从上方链接中第三个软件下载。

  gtags 是一个类似CTag的,能够创建用于实现索引和自动补全功能所需的Tag的程序。下载  gtags可以去官网下载源代码自己编译,或者直接下载它提供的Win32安装包。 由于我们是在 windows 操作系统下,所以我们在官网下载页面 (http://adoxa.altervista.org/global/)下,选择win32 下载 。其他系统可以根据需要下载。

下载完成后,解压缩,可以看到里面包含 3 个文件夹。我们需要把 glo656wb\bin 目录  添加到 windows系统环境变量path。 (特别注意,不要将这个glo656wb目录放到 vscode的安装目录,每次vscode自动更新会将目录清除掉)

注意:系统变量需要在新打开cmd窗口set path=1后关闭cmd窗口才能立即生效 。

  • path生效后,用 VSCode 打开你的工程文件夹(C/C++源码目录),按下快捷键ctrl+shift+C , 输入 gtags (运行的是glo656wb\bin 目录下的gtags.exe),运行。可以看到在工程文件夹下生成了 3 个文件,分别是: GPATH、GRTAGS、GTAGS ,这表明,我们的 gtags 开始正常工作啦。

  • 也可以cmd进入工程文件夹,再运行gtags

按Ctrl键并使鼠标指向某个函数,您将看到这个函数的提示信息,点击可以跳转到定义、查找引用(shift+F12)、自动补全、列出符号等(ctrl+P,输入@)。

这时候你就会发现可以使用 Go to definition 进行跨文件跳转啦~

建议按库进行工作文件夹设置。

注意还有以下问题待解决:

1)微软自家的 C/C++ 插件 ms-vscode.cpptools 也会产生大的索引文件,放在安装目录中。占用磁盘空间。所以如下目录所在C盘建议预留较大空间。C:\Users\用户名\AppData\Roaming\Code\User\workspaceStorage

2)如果加多个文件夹到工作区,目前还没有找到方法在多个文件夹中跳转。一般就是文件夹内部跳转。

3)注意samba共享的远程服务器文件夹,可以映射到windows上作为一个网络硬盘,如Z盘之类,和本地盘一样操作即可。

4)对大型软件,建议分平台、产品等进行工作文件夹分开编译gtag文件,可能过大会有异常。

5)   gtags运行结果有 gtags: dbop_put failed.  

如果需要可以打开自动补全功能,按下快捷键 Ctrl+P, 输入 settings, 在打开的 settings.json 文件中 设置以下代码,开启 C/C++ 插件自带的代码补全功能。

"[cpp]": {
    "editor.quickSuggestions": true
    },
"[c]": {
    "editor.quickSuggestions": true
}

猜你喜欢

转载自blog.csdn.net/danxibaoxxx/article/details/81289651