赞
踩
之前读书学习时,代码量比较小,装个C/C++插件就可搞定,但面对比较大的工程,只安装这个插件就不起作用了,就需要建立符号链接。
“C/C++”插件是来自微软官方的 C/C++ 插件,必备的插件,是代码跳转、自动补全、代码大纲显示等功能的基础。
global管理工具分为两部分:
1、GNU Global插件工具
GNU Global是实现函数跳转的基础工具,VSCode中提供了“C/C++ GNU Global”插件:
2、本地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
”命令下载。
修改环境变量(添加解压出来的bin路径:如:E:\Software_Tool\Global\bin
)
注意:windows
安装的GNU Global
是免安装的,直接将其解压即可。
直接在命令行输入sudo apt-get insall global
安装完成后,使用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.
4、配置
这是因为我们的工程文件太大,一般的文件大于50MB就要禁用此项功能。
是为了启用VSCode自带的代码自动补全功能,因为不禁用global自动补全功能的话,有些变量输入时无法进行自动补全。
搜索C++ Intellisense和Gtags插件,并安装。
C++ Intellisense和Gtags插件都是依赖GNU Global的,可以实现函数跳转功能,如下图:
安装完毕后,首先使用VSCode打开工程文件夹,然后有两种方法使用:
方法一:
法一,在VSCode中按F1,输入Global:Rebuild Gtags
Database,回车,此时更新的是在VSCode打开得所有文件夹。
方法二:
法二,在c++代码工程文件中,该工程目录终端中执行指令gtags,当代码改动时,cmd执行指令global -u即可更新这三个文件。
最终可以在我们的linux
内核工程中会创建GPATH、GRTAGS
和GTAGS
三个文件,(根据文件夹大小,扫描时间也有不同),待扫描完毕后,就可以使用函数跳转功能了
1、windows安装失败:
打开settings.json
添加global 文件目录(如:E:\Software_Tool\Global\bin
)
"gnuGlobal.globalExecutable": "E:\\Software_Tool\\Global\\bin\\global.exe",
"gnuGlobal.gtagsExecutable": "E:\\Software_Tool\\Global\\bin\\gtags.exe"
重新查看是否正确安装及版本号
2、Linux安装:
在终端中使用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工具路径添加进配置文件中:
注意:在亲自实验的过程中发现已经安装了global
,但是的通过global --version
可以看到该命令,但是输入global
,系统找不到global
命令。。这可能是因为没有安装gtags插件的原因,可以提前进行以下gtags
插件的安装,再次输入witch global
即可找到该命令。
注意:
GTAGS是定义的数据库,GRTAGS是引用的数据库,GPATH是路径的数据库;
另外,如果代码有改动需要使用global -u更新数据库文件,可在User Setting下设置codegnuglobal.autoupdate=false
即可自动更新。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。