2017-04-14 7 views
0

私はWindows上のコマンドラインで非常に単純なGtkAdaアプリケーションをコンパイルしようとしています。GtkAdaをコマンドラインで使用するには?

`WITH Gtk.Main ;  USE Gtk.Main ; 
WITH Gtk.Window ;  USE Gtk.Window ; 
PROCEDURE Test01 IS 
    win : Gtk_window ; 
BEGIN 
    Init ; 
    Gtk_New(Win) ; 
    Win.show_all ; 
    Main ; 
END Test01 ;` 

gcc -c test01.adb -IC:\<<path_to_GtkAda\include\gtkada>>、 予想通り、私はtest.aliとtest01.oを入手してコンパイル:ここではアプリのコードです。

しかしlibsをリンクする方法どうしますか?

gcc test.o -LC:\<<path_to_GtkAda>>\lib 

ができます:

`Test01.o:Test01.adb:(.text+0xe): undefined reference to `gtk__main__init' 
Test01.o:Test01.adb:(.text+0x21): undefined reference to `gtk__window__gtk_new' 
Test01.o:Test01.adb:(.text+0x3e): undefined reference to `__gnat_rcheck_CE_Access_Check' 
Test01.o:Test01.adb:(.text+0x5e): undefined reference to `gtk__main__main' 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: Test01.o: bad reloc address 0x20 in section `.eh_f 
rame' 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation 
collect2.exe: error: ld returned 1 exit status` 

PATHはすでに

<<path_to_GtkAda>>/binありがとう含まれています。

答えて

3

ソリューションは、通常、コンパイラでインストールマニュアルに記載されている一般的に「DOC」または「DOC/gprbuild」サブディレクトリに、GNATのプロジェクトファイルを使用することです。

簡単な例「SO.gpr」という名前のプロジェクトファイルには、次のようになります。

with "gtkada"; 
project SO is 

for Source_Dirs use ("."); 

end SO; 

with "gtkada";を言う部分に注意してください。これは、ツールチェーンがAda/GTKプログラムを作成するために必要なすべてのスイッチを注入することを意味します。あなたはこのようなGNATツールチェーンを呼び出す場合 はその後、:

$ gnatmake -PSO test01.adb 

エイダは、プログラムは、順番に、gccgnatbind、およびgnatlinkを呼び出します作ります。それぞれについて、コマンドに必要な引数が自動的に提供されます。 (あなたが使用しているGNATのエディションに応じて、あなたはまた、gprbuildを使用することができます)

ので、libgtkada2.24.4-devでのDebian/GNUシステム上で例えばインストール、私はこれを参照してください。

$ gnatmake -Pso test01.adb 
gcc-4.9 -c -I- -gnatA /home/bauhaus/News/SO/test01.adb 
gnatbind -shared -x /home/bauhaus/News/SO/test01.ali 
gnatlink /home/bauhaus/News/SO/test01.ali -shared-libgcc -L/usr/lib/x86_64-linux-gnu/ -lgtkada -lgdk-x11-2.0 -lgmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lfontconfig -lfreetype -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lX11 -lm -o /home/bauhaus/News/SO/test01 
$ 
+0

ありがとうございました! :-) +1私はこれを試してみましょう! –

関連する問題