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



试图让GtkAda工作。我自己没有编译这个库,遇到了很多问题,最后我在网上找到了一个预编译的库。当然,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 ;

这给了我这个错误:

gnalink/Users/laurentlugen/GPS/mafentre.ali-o
/用户/Laurentlugen/GPS/mafentre
体系结构x86_64的未定义符号:
"_ada_c_enum_value_size",引用自:



"_pango_tab_array_new",引用自:
pango_tabs__pango_new在pango选项卡中。o
ld:找不到体系结构x86_64的符号
collect2:错误:ld返回1个出口
状态gnalink:调用/usr/local/gnat/bin/gcc时出错
gnatmake:*链接失败
〔2013-08-01 21:16:46〕进程退出状态4(经过时间:09.38秒)

编译器抱怨的文件列表很长,所以

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

我使用AdaCore为MacOS X提供的最后一个版本的gnat(2013)。我使用的是MacOS 10.8。
GtkAda图书馆是xadalib 2012。

感谢

Laurent

据我所见,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石英编译GPS的说明很有用(正如Simon已经指出的)。

如果你愿意,你可以试试我的GPS端口到OSX。默认情况下,它可以加载与GNAT GPL绑定的*.gpr文件。在使用页面上,您可以找到有关在其他地方安装GNAT时如何更改ADA_PROJECT_PATH的说明。

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

编辑:

我的立场是正确的:事实上,无论出于何种原因,GtkAda都不包括在GNAT GPL分发中。由于XmlAda是作为链接的项目包含的,我确信GtkAda也是,但事实并非如此;因此,使用XAdaLib似乎是最简单的选择。您必须将ADA_PROJECT_PATH指向XAdaLib的安装目录,而不是通常的GNAT目录,才能使用GtkAda。

据我所知,AdaCore for x86中没有一个GPL'ed GNAT能够生成64位代码。我想我在某个地方读到了类似的东西,但不记得在哪里。


这个问题也出现在杜姆3的阿达港,所以如果你能找到他,他可能肯定知道。

最新更新