Linux环境下GTKAda安装求助:编译时无法找到相关文件
解决GTKAda安装与编译问题
一、处理configure阶段的'-werror=format-security'警告
这个警告是因为configure脚本误将C编译器的参数传给了Ada编译器,导致不兼容。可以通过以下方式解决:
- 重新运行configure,添加
--disable-werror参数,同时明确指定编译器:
./configure prefix=/usr/gtkada --disable-werror CC=gcc GNATMAKE=gnatmake
如果之前已经运行过configure,先删除生成的Makefile和config.status文件,再执行上面的命令。
二、解决编译时找不到gtkada.ads、gtk.ads的问题
出现这个错误,要么是GTKAda没完成完整安装,要么是GNAT的搜索路径没包含GTKAda的文件目录。
完成完整安装流程
你之前只执行了make,还需要执行安装步骤将文件复制到指定目录:sudo make install执行后,GTKAda的源文件会被放到
/usr/gtkada/include/gtkada,库文件在/usr/gtkada/lib/gtkada。配置GNAT的环境变量
GNAT需要知道GTKAda的文件位置,可通过配置环境变量实现:- 临时生效(仅当前终端):
export ADA_INCLUDE_PATH=/usr/gtkada/include/gtkada:$ADA_INCLUDE_PATH export ADA_OBJECTS_PATH=/usr/gtkada/lib/gtkada:$ADA_OBJECTS_PATH export LD_LIBRARY_PATH=/usr/gtkada/lib:$LD_LIBRARY_PATH - 永久生效(所有终端):
将上面三条命令添加到你的~/.bashrc(如果用bash)或~/.zshrc(如果用zsh)文件末尾,然后执行source ~/.bashrc让配置立即生效。
- 临时生效(仅当前终端):
VSCode中的适配配置
在VSCode里用GNAT插件时,需要让插件识别GTKAda路径:- 打开设置(快捷键Ctrl+,),搜索
gnat:- 在
Gnat: Ada Include Paths中添加/usr/gtkada/include/gtkada; - 在
Gnat: Ada Objects Paths中添加/usr/gtkada/lib/gtkada;
- 在
- 或者在项目根目录创建
.gnat.adc文件,写入以下内容,让GNAT自动读取配置:project Default is for Source_Dirs use ("/usr/gtkada/include/gtkada", "."); for Object_Dir use "obj"; for Library_Dir use "/usr/gtkada/lib/gtkada"; end Default;
- 打开设置(快捷键Ctrl+,),搜索
三、验证安装是否成功
创建一个简单的测试程序test.adb:
with Gtk.Main; use Gtk.Main; with Gtk.Window; use Gtk.Window; procedure Test is Win : Gtk_Window; begin Init; Gtk_New (Win); Win.Set_Title ("GTKAda Test"); Win.Show_All; Main; end Test;
用以下命令编译运行:
gnatmake test.adb -largs $(pkg-config --libs gtk+-3.0) ./test
如果能弹出标题为"GTKAda Test"的窗口,说明安装配置成功。
内容的提问来源于stack exchange,提问作者Dimitri Emmanuel Zokoualouba M
相关产品推荐
相关产品推荐

