尝试让GtkAda工作。没有自己编译lib,有很多问题,最后我在互联网上找到了一个预编译的库。当然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 / mafenetre
架构x86_64的未定义符号:
“_ada_c_enum_value_size”,引自:
。
。
。
“_pango_tab_array_new”,引自:
pango-tabs.o中的 pango _tabs__pango_new ld:找不到架构x86_64的符号
collect2:错误:ld返回1退出
状态gnatlink:调用/ usr / local / gnat / bin / gcc时出错 gnatmake: * 链接失败 [2013-08-01 21:16:46]进程退出 状态4(经过时间:09.38s)
编译器抱怨的文件列表很长。
任何人都知道如何解决这个问题。
我使用AdaCore for MacOS X的最新版gnat(2013)。我使用的是MacOS 10.8。
GtkAda库是xadalib 2012。
由于
劳伦
答案 0 :(得分:2)
从我看到的情况来看,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的instructions I wrote很有帮助(正如Simon已经注意到的那样)。
如果您愿意,可以试试我的GPS port to OSX。默认情况下,它可以加载与GNAT GPL捆绑在一起的*.gpr
个文件。在Usage页面上,您可以找到如果您在其他地方安装了GNAT,如何更改ADA_PROJECT_PATH
的说明。
要获得进一步的帮助,您应该发布项目的*.gpr
文件。
修改强>
我坚持认为:GtkAda实际上不包括在GNAT GPL发行版中。由于XmlAda被包含作为链接的项目,我确信GtkAda也是如此,但事实并非如此;所以使用XAdaLib似乎是最简单的选择。您必须将ADA_PROJECT_PATH
指向XAdaLib的安装目录,而不是通常的GNAT,以便能够使用GtkAda。
答案 1 :(得分:1)
据我所知,AdaCore for G86的GPL都不具备生成 64位代码的能力。我想我在某个地方看到了那种效果,但不记得在哪里。
这个问题也出现在Doom3的Ada-port中,所以如果你能找到他,他可能肯定知道。