2

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 ;

これにより、このエラーが発生しました:

gnatlink /Users/laurentlutgen/GPS/mafenetre.ali -o
/Users/laurentlutgen/GPS/mafenetre
アーキテクチャ x86_64 の未定義シンボル:
"_ada_c_enum_value_size"、参照元:
.
.
.
「_pango_tab_array_new」、参照元:
pango -tabs.old 内の pango _tabs__pango_new:
アーキテクチャ x86_64
collect2 のシンボルが見つかりません: エラー: ld が 1 終了
ステータスを返しました gnatlink: /usr/local/gnat/bin/gcc の呼び出し時にエラーが発生しました
gnatmake: *リンクに失敗しました。
[2013-08-01 21:16:46] プロセスはステータス 4 で終了しました (経過時間: 09.38 秒)

コンパイラが不平を言うファイルのリストは非常に長いです。

誰でもこれを解決する方法を考えています。

MacOS X 用の AdaCore の最新バージョンの gnat (2013) を使用しています。MacOS 10.8 を使用しています。
GtkAda ライブラリは xadalib 2012 です。

ありがとう

ローラン

4

2 に答える 2

2

私が見たところ、gnatlinkリンクに必要なライブラリが渡されません。プロジェクトに GtkAda を手動で追加したとのことでした。これを行うと、おそらく*.gprGtkAda のファイルで指定されたすべてのリンカー オプションが失われるため、バイナリは GTK+ ライブラリに対してリンクされません。

GPS を取得して、インストールされている GtkAda プロジェクト ファイルを見つけることをお勧めします。ADA_PROJECT_PATHこれは、 GPS を起動する前に設定することで実行できます。GtkAda が GNAT GPL のデフォルト パスにある場合、次のようになります。

$ export ADA_PROJECT_PATH="/usr/local/gnat/lib/gnat"
$ gps

インターネットで見つけたコンパイル済みのバイナリを使用しているとのことでした。GtkAda が GNAT GPL コンパイラにバンドルされていることをご存知ですか? gtk-quartz をバックエンドとして使用する場合を除き (X11 は必要ありません)、これを使用する必要があります。その場合は、 gtk-quartz を使用して GPS をコンパイルするために私が書いた手順が役に立つかもしれません (Simon が既に指摘しているように)。

必要に応じて、私のGPS ポートを OSX に試すことができます。デフォルトでは、*.gprGNAT GPL にバンドルされているファイルをロードできます。使用法ページにはADA_PROJECT_PATH、GNAT を別の場所にインストールした場合の変更方法が記載されています。

*.gprさらにヘルプが必要な場合は、プロジェクトのファイルを投稿する必要があります。

編集:

私は訂正します: GtkAda は実際には何らかの理由で GNAT GPL ディストリビューションに含まれていません。XmlAda はリンク先のプロジェクトとして含まれているため、GtkAda も含まれていると確信していましたが、そうではありません。そのため、XAdaLib を使用するのが最も簡単なオプションのようです。GtkAdaADA_PROJECT_PATHを使用できるようにするには、通常の GNAT の代わりに XAdaLib のインストール ディレクトリを指定する必要があります。

于 2013-08-02T09:00:42.073 に答える
1

私の知る限り、x86 用の AdaCore の GPL 化された GNAT には、64 ビット コードを生成する機能がありません。その趣旨の何かをどこかで読んだ気がするが、どこだったか思い出せない。


この問題は Doom3 の Ada ポートでも発生したため、彼を見つけることができれば、彼は確実に知っている可能性があります。

于 2013-08-02T07:00:47.813 に答える