Reputation: 331
I get the following if I try to compile the GtkAda minimal example of GNAT Programming Studio 6.1.0w:
...
gnatlink /home/myuser/own projects/ada/obj/main.ali -shared-libgcc -g -g -L/usr/lib/x86_64-linux-gnu/ -lgtkada -lgmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lfontconfig -lfreetype -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lX11 -lm -o /home/gabre/own projects/ada/obj/main
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_filter_create_separable_convolution'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_cache_remove'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_cache_freeze'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_cache_thaw'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_composite_glyphs'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_cache_lookup'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_get_mask_format'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_cache_insert'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_glyph_cache_create'
/usr/lib/x86_64-linux-gnu//libcairo.so: undefined reference to `pixman_composite_glyphs_no_mask'
collect2: ld returned 1 exit status
gnatlink: error when calling /usr/bin/gcc-4.6
The command executed by GPS:
gnatmake -d -P/home/myuser/own projects/ada/AdaTest.gpr -vP2 -j4 -g
The same command works if I try it from a terminal and it also worked in GPS 5.0 (which executed the same command as the newest, 6.1.0w) What can cause this and how can I make GPS work?
Upvotes: 0
Views: 946
Reputation: 2715
You asked the same question on comp.lang.ada I believe. Just for the record, the answer from Ludovic Brenta was to: install libpixman-1-dev, and then edit the Linker'Linker_Options switch in your project file so that it contains "-lpixman-1".
It is possible that when running from GPS, the linker sees a different version of one of the libraries that come with gtk+, and this would have a different list of dependencies.
Upvotes: 1