Ada GPS IDE编译器错误架构x86_64的未定义符号

Ada GPS IDE编译器错误架构x86_64的未定义符号,ada,Ada,试图让格特卡达工作。我自己没有编译库,有很多问题,最后我在互联网上找到了一个预编译库。当然,即使在把它添加到我的路径中,GPS也没有找到它 所以我手动将其添加到我的项目中,GPS开始编译。这只是一个简单的例子,看看是否一切工作。刚刚开始学习编程 WITH Gtk.Main ; USE Gtk.Main ; WITH Gtk.Window ; USE Gtk.Window ; WITH Gtk.Enums ; USE Gtk.Enums ;

试图让格特卡达工作。我自己没有编译库,有很多问题,最后我在互联网上找到了一个预编译库。当然,即使在把它添加到我的路径中,GPS也没有找到它

所以我手动将其添加到我的项目中,GPS开始编译。这只是一个简单的例子,看看是否一切工作。刚刚开始学习编程

WITH Gtk.Main ;          
USE Gtk.Main ;
WITH Gtk.Window ;        
USE Gtk.Window ;
WITH Gtk.Enums ;         
USE Gtk.Enums ;

PROCEDURE MaFenetre IS
win : Gtk_window ;
BEGIN
Init ;
Gtk_New(win,Window_Popup) ;
win.show ;
Main ;
END MaFenetre ;
这给了我这个错误:

gnatlink/Users/laurentlutgen/GPS/mafenetre.ali-o
/用户/laurentlutgen/GPS/Mafentere
架构x86_64的未定义符号:
“_ada_c_enum_value_size”,引用自:
.
.
.
“_pango_tab_array_new”,引用自:
pango_tabs__pango_pango_pango tabs.o中的新pango_ ld:未找到架构x86_64的符号
collect2:错误:ld返回了1个出口
状态gnatlink:调用/usr/local/gnat/bin/gcc时出错
gnatmake:*链接失败。
[2013-08-01 21:16:46]进程已退出 状态4(运行时间:09.38s)

编译器抱怨的文件列表非常长

任何人都知道如何解决这个问题

我使用AdaCore针对MacOS X的gnat(2013)的最新版本。我使用MacOS 10.8。
GtkAda图书馆是xadalib 2012

谢谢


Laurent

据我所知,AdaCore for x86的GPL’ed GNAT都没有生成64位代码的能力。我想我在某处读到过类似的东西,但记不起在哪里了



Ada端口Doom3中也出现了这个问题,因此如果你能找到他,他可能肯定知道。

据我所见,
gnatlink
没有通过需要链接的库。您说过您手动将GtkAda添加到项目中。这样做,您可能会错过GtkAda的
*.gpr
文件中指定的所有链接器选项,因此您的二进制文件不会链接到GTK+库

我建议您尝试让GPS查找已安装的GtkAda项目文件。您可以通过在启动GPS之前设置
ADA_PROJECT_PATH
来完成此操作。如果GtkAda位于GNAT GPL的默认路径中,则如下所示:

$ export ADA_PROJECT_PATH="/usr/local/gnat/lib/gnat"
$ gps
你说你使用的是在互联网上找到的预编译二进制文件。您知道GtkAda与GNAT GPL编译器捆绑在一起吗?您应该使用它,除非您想使用gtk quartz作为后端(不需要X11)。如果是这种情况,您可能会发现使用gtk quartz编译GPS的方法很有用(正如Simon已经指出的)

如果你愿意,你可以试试我的。默认情况下,它能够加载与GNAT GPL绑定的
*.gpr
文件。在页面上,您可以找到如何更改
ADA_项目路径的说明,如果您在其他地方安装了GNAT

要获得进一步帮助,您应该发布项目的
*.gpr
文件

编辑:


我站在更正:GtkAda事实上不包括在GNAT GPL分布的任何原因。由于XmlAda是作为链接对象包含的项目,我确信GtkAda也是,但事实并非如此;因此,使用XAdaLib似乎是最简单的选择。你必须将
ADA_PROJECT_PATH
指向XAdaLib的安装目录,而不是通常的GNAT目录,才能使用GtkAda。

对于Mac OS X,它们都配置了
--build=x86_64-apple-darwin*
,因此它们没有生成32位代码的能力。不知道;谢谢你的信息。(我没有/使用Mac,所以我从来没有机会玩它的GNAT实现。)如果我有时间,我将尝试编译这个Doom3项目。如果我得到相同的错误,这是一个32/64位的问题,否则是我的gps/gnat安装被窃听。首先必须解决一个新问题:gprbuild:“mafentere.adb”不是任何项目的来源。也许这隐藏了原来的一个。flyx building GPS(Gtk&Ada应用程序)使用原生石英显示系统而不是XQuartz。可能有用…我尝试了您的指示,针对quartz构建gps:迄今为止一直有效,直到:jhbuild shellbuild gps.sh
是我的git存储库的一部分,自述文件位于其中,您必须首先克隆它。但是,如果您已经做到了这一点,并且没有出现错误,那么您应该已经在
~/gtk/inst/lib/gnat
中安装了一个工作正常的GtkAda,并且您实际上不需要编译gps。关于您当前的错误,您应该有一个
供Source_Dirs使用(“src”)或项目文件中的某些内容。检查您的实际源文件是否位于该目录中,并且名为
mafentere.adb
-错误表明它不是。最小的
.gpr
将是此文件-与
mafentere.adb
位于同一目录中<代码>带有“gtkada”;Mf项目主要用于(“Mafentere.adb”);结束Mf我想我把我的路弄乱了,我不知道还有什么。清理一切。也许它能起作用,否则这是我目前最后一次尝试gtkada。谢谢你的耐心。