Geany代码补全功能无法使用所包含的头文件中的符号、代码提示列表中符号不全的问题

⌚Time: 2022-07-08 20:48:05

👨‍💻Author: Jack Ge

geany支持代码补全,但是,对于第三方库中的符号,就会无法解析和自动补全了

我使用gtk库,输入g,只会提示标准c语言库中的一些符号。而没有提示任何gtk头文件中的各种符函数、宏。

而对于项目中包含的gtk头文件,右键打开选择的文件

则会出现找不到该头文件的问题,自然也就无法解析和使用其中的各种符号了

首先编译选项是正确配置了的,能够正常编译和运行gtk程序。

对于windows下的visual studio来说,只要正确的配置了附加库和头文件目录,编译链接就会成功执行,并且vs会对其中的文件进行解析,编辑代码时就会出现相应的提示。

而geany的代码编辑器只是一个编辑器,与编译参数的配置没有任何的关系。如果要实现其对第三方库的代码提示功能,就需要使用Global Tags功能(全局标记)。

全局标记用于提供符号和调用提示的自动完成,而无需打开相应的源文件

下面介绍如何创建Global Tags,实现Geany代码补全功能


步骤一:创建c/c++全局标记

全局标记的命名格式为:name.lang_ext.tags

创建全局标记的命令是:


geany -g [-P] <Tag File> <File list>

输入以下命令创建gtk库的tags文件gtk.c.tags


CFLAGS=`pkg-config --cflags gtk+-2.0` geany -g gtk.c.tags /usr/include/gtk-2.0/gtk/gtk.h

CFLAGS=`pkg-config --cflags gtk+-2.0`:为geany指明gtk库的包含目录(如果你默认的CFLAGS环境变量中已经存在gtk的参数,这句应该可以省略)

gtk.c.tags:生成的tags文件名字

/usr/include/gtk-2.0/gtk/gtk.h:用于生成Global Tags的头文件

命令执行完毕后,在当前目录下已经生成了gtk.c.tags文件

步骤二:使用创建的全局标记

使用全局标记的方法有两种,你可以使用任何一种方法来使用创建好的全局标记

方式一:

首先查看geany的配置文件路径,查看方法是:打开帮助,调试信息,在调试信息中找到

User config dir这一项,后面跟的目录就是配置文件路径,一般来说,这个路径就是~/.config/geany

执行以下命令直接将tag文件拷贝到配置文件路径的tags文件夹内


cp gtk.c.tags ~/.config/geany/tags

重启geany,再输入相关代码,可见代码提示里面多了gtk库中的各种函数符号的提示,说明配置成功

方式二:

点击工具,载入标记文件,直接选择生成的tag文件就可以了