You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的文件目录。

  1. 完成完整安装流程
    你之前只执行了make,还需要执行安装步骤将文件复制到指定目录:

    sudo make install
    

    执行后,GTKAda的源文件会被放到/usr/gtkada/include/gtkada,库文件在/usr/gtkada/lib/gtkada。

  2. 配置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让配置立即生效。
  3. 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;
      

三、验证安装是否成功

创建一个简单的测试程序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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:26:15