windows - How to use GtkAda in command-line? -


i try compile simple gtkada application in command-line, on windows. here app code:

`with gtk.main ;       use gtk.main ;  gtk.window ;     use gtk.window ;  procedure test01    win : gtk_window ; begin    init ;     gtk_new(win) ;    win.show_all ;     main ;  end test01 ;` 

compiling with

gcc -c test01.adb -ic:\<<path_to_gtkada\include\gtkada>>, obtain test.ali , test01.o expected.

but how link libs please?

gcc test.o -lc:\<<path_to_gtkada>>\lib 

gives:

`test01.o:test01.adb:(.text+0xe): undefined reference `gtk__main__init' test01.o:test01.adb:(.text+0x21): undefined reference `gtk__window__gtk_new' test01.o:test01.adb:(.text+0x3e): undefined reference `__gnat_rcheck_ce_access_check' test01.o:test01.adb:(.text+0x5e): undefined reference `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 contains <<path_to_gtkada>>/bin

thank you.

the solution use gnat's project files described in documentation installed compiler, typically in “doc” or "doc/gprbuild” subdirectory.

a simple example project file named “so.gpr” might this:

with "gtkada"; project   source_dirs use (".");  end so; 

note part says with "gtkada";. means toolchain inject switches necessary make ada/gtk program. then, if invoke gnat toolchain this:

$ gnatmake -pso test01.adb 

the ada make program call, in sequence, gcc, gnatbind, , gnatlink. each, necessary arguments commands supplied automatically. (depending on edition of gnat using, may use gprbuild.)

so, example on debian/gnu system libgtkada2.24.4-dev installed, see this:

$ 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 $ 

Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -