之前读书学习时,代码量比较小,装个C/C++插件就可搞定,但面对比较大的工程,只安装这个插件就不起作用了,就需要建立符号链接。
1 基础环境C/C++”插件
“C/C++”插件是来自微软官方的 C/C++ 插件,必备的插件,是代码跳转、自动补全、代码大纲显示等功能的基础。
2 GNU Global工具
2.1 GNU global下载安装
GNU Global是实现函数跳转的基础工具,VSCode中提供了“C/C++ GNU Global”插件:
除了安装该插件之外,还需要在本地下载安装GNU Global工具,安装过程如下:
地址:https://ftp.gnu.org/pub/gnu/global/,安装最新版即可(至少要>=6.5版本)
目前最新版是6.6.6版,也可以直接使用“wget https://ftp.gnu.org/pub/gnu/global/global-6.6.6.tar.gz”命令下载。
在解压后文件夹中执行下列命令(失败的话开启管理员权限)
[hezz@ubu global-6.6 16:46]$ ./configure
..
..
[hezz@ubu global-6.6 16:46]$ sudo make install
..
..
[hezz@ubu global-6.6 16:46]$ make
..
..
-
4、查看
安装完成后,使用global --version
命令即可查询到版本信息,说明安装成功:
[hezz@ubu global-6.6 16:46]$ global --version
global (GNU GLOBAL) 6.6
Copyright (c) 1996-2017 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
2.2 GUN global配置
-
1、设置->扩展设置
- Auto Update配置为“Disable”
这是因为我们的工程文件太大,一般的文件大于50MB就要禁用此项功能。
- completion配置为“Disable”
是为了启用VSCode自带的代码自动补全功能,因为不禁用global自动补全功能的话,有些变量输入时无法进行自动补全。
- 2、global、gtags路径配置
- 查看路径
在终端中使用which global;which gtags
命令得到工具的路径,此路径要添加到VSCode的配置中:
[hezz@ubu global-6.6 16:48]$which global;which gtags
/usr/local/bin/global
/usr/local/bin/gtags
最后,点击上图中Global Executable下的settings.json
,打开配置文件,将前面提前获取的global和gtags工具路径添加进配置文件中:
至此,GNU Global安装配置完毕。
3 C++ Intellisense和Gtags插件
搜索C++ Intellisense和Gtags插件,并安装。
C++ Intellisense和Gtags插件都是依赖GNU Global的,可以实现函数跳转功能,如下图:
4 链接符号生成
安装完毕后,首先使用VSCode打开工程文件夹,然后有两种方法使用:
- 法一,在VSCode中按F1,输入Global:Rebuild Gtags Database,回车,此时更新的是在VSCode打开得所有文件夹。
- 法二,在c++代码工程文件中,该工程目录终端中执行指令gtags,当代码改动时,cmd执行指令global -u即可更新这三个文件。
最终可以在我们的linux内核工程中会创建GPATH、GRTAGS和GTAGS三个文件,(根据文件夹大小,扫描时间也有不同),待扫描完毕后,就可以使用函数跳转功能了
5 跳转方法
-
1.光标定位到变量名或者函数名,按下**“F12”**即可实现函数跳转。
-
2.光标定位到变量名或者函数名,按下**“Ctrl”+鼠标左键**,实现跳转:
-
3.光标定位到变量名或者函数名,鼠标右键,选择“转到定义处”即可实现跳转:
-
回跳
1、快捷键“Ctrl + Alt + -”向后跳转,
2、通过快捷键“Ctrl + Shift + -”重新跳转到定义处。
同样的,也可以实现从变量/函数定义处跳转到引用处。