[fpc-devel]Gnome gtk freepascal bindings.
Pascal Pype
pascal.pype at skynet.be
Sat Aug 16 15:40:23 CEST 2003
Hello ,
There seem to be some problems about the usage of the free pascal
compiler for freeBSD. An application that once was written for windows
3.1 in turbo pascal needs to be ported to freeBSD and linux. In order
to be able to keep the recoding effort to a minimal level , programming
tools were sought that are compatible to turbo pascal as much as
possible. Free pascal was the answer to that. I choose to use free
pascal 1.0.6. Within free pascal gtk-gnome is highly supported , so
gtk-gnome will serve as toolkit for porting the gui part of the
application. On slackware linux there were no problems about using the
gtk-gnome API at all. On freeBSD however there are several problems
about using the gtk toolkit via the free pascal bindings to gtk.
I use gnome 1-2a on my freeBSD machine and my slackware machine runs
gnome 1.4 upon slackware version 8.0. The version of freeBSD I use is
4.8. The first problem arose when free pascal tried to link the
application. It didn't find the necessary libraries. So I made the
following symlinks:
/usr/local/lib/libgmodule.a -> /usr/local/lib/libgmodule12.a
/usr/local/lib/libglib.a -> /usr/local/lib/libglib12.a
/usr/X11R6/lib/libgdk.a -> /usr/X11R6/lib/libgdk12.a
/usr/X11R6/lib/libgtk.a -> /usr/X11R6/lib/libgtk12.a
Then those libraries were found , but the linker issued a whole bunch
of linker errors:
Linking coll
/usr/X11R6/lib//libgtk.a(gtkcolorsel.o): In function
`gtk_color_selection_init':
gtkcolorsel.o(.text+0x738): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtkcolorsel.o): In function
`gtk_color_selection_dialog_init':
gtkcolorsel.o(.text+0x3687): undefined reference to `libintl_dgettext'
gtkcolorsel.o(.text+0x3703): undefined reference to `libintl_dgettext'
gtkcolorsel.o(.text+0x3771): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtkfilesel.o): In function
`gtk_file_selection_init':
gtkfilesel.o(.text+0x19f): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtkfilesel.o)(.text+0x298): more undefined
references to `libintl_dgettext' follow
/usr/X11R6/lib//libgtk.a(gtkmain.o): In function `gtk_init_check':
gtkmain.o(.text+0x4b5): undefined reference to `libintl_bindtextdomain'
/usr/X11R6/lib//libgtk.a(gtknotebook.o): In function
`gtk_notebook_update_labels':
gtknotebook.o(.text+0x3914): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtknotebook.o): In function
`gtk_notebook_set_tab_label':
gtknotebook.o(.text+0x7672): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtkrc.o): In function `gtk_rc_find_pixmap_in_path':
gtkrc.o(.text+0x235e): undefined reference to `libintl_dgettext'
gtkrc.o(.text+0x2383): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtkthemes.o): In function `gtk_theme_engine_get':
gtkthemes.o(.text+0x86): undefined reference to `libintl_dgettext'
/usr/X11R6/lib//libgtk.a(gtktipsquery.o)(.text+0x1db): more undefined
references to `libintl_dgettext' follow
coll.pas(19) Error: Error while linking
Closing script ppas.sh
So one feels the need to add the linker option "-lintl" to resolve
this one. And yes , all linker errors are gone afterwards!
But when one tries to run the application in gnome under the pixmap
theme one receives a true shopping-list of gtk errors and warnings :
gdk_imlib ERROR: gdk has not connected to the display
Gdk-CRITICAL **: file gdkwindow.c: line 1406 (gdk_window_get_visual):
assertion `window != NULL' failed.
Gtk-CRITICAL **: file gtkwidget.c: line 4258 (gtk_widget_push_visual):
assertion `visual != NULL' failed.
Gtk-CRITICAL **: file gtkwidget.c: line 4242 (gtk_widget_push_colormap):
assertion `cmap != NULL' failed.
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 40
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button4.png" line 58
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button1.png" line 67
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button_def.png" line 89
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button1.png" line 99
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button2.png" line 109
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button4.png" line 119
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button6.png" line 129
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 139
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button4.png" line 149
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button3.png" line 159
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button8.png" line 186
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"extension_top1.png" line 194
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"extension_bottom1.png" line 203
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"extension_left1.png" line 212
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"extension_right1.png" line 221
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"notebook1.png" line 233
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_top.png" line 236
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_top_start.png" line 238
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_top_end.png" line 240
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"notebook1.png" line 248
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_bottom.png" line 251
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_bottom_start.png" line 253
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_bottom_end.png" line 255
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"notebook1.png" line 263
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_left.png" line 266
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_left_start.png" line 268
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_left_end.png" line 270
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"notebook1.png" line 278
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_right.png" line 281
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_right_start.png" line 283
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"gap_right_end.png" line 285
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"notebook1.png" line 296
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 313
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button7.png" line 329
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"menubar.png" line 345
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button2.png" line 362
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button1.png" line 370
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"progressbar.png" line 388
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"ruler_vert.png" line 405
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"ruler_horiz.png" line 414
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 431
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button2.png" line 439
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"brown_bg1.png" line 456
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"curve_bg1.png" line 472
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_horiz1.png" line 503
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_thumb2.png" line 506
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_horiz1.png" line 517
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_thumb.png" line 520
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_vert1.png" line 531
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_thumb2.png" line 534
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_vert1.png" line 544
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_thumb.png" line 547
Gtk-WARNING **: Unable to locate image file in pixmap_path: "trough.png"
line 560
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"ruler_horiz.png" line 572
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 584
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 596
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 609
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button2.png" line 618
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 628
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button2.png" line 637
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"brown_bg2.png" line 646
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_up1.png" line 657
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_up2.png" line 666
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_up3.png" line 675
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_down1.png" line 685
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_down2.png" line 694
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_down3.png" line 703
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_left1.png" line 713
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_left2.png" line 722
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_left3.png" line 731
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_right1.png" line 741
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_right2.png" line 750
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"arrow_right3.png" line 759
Gtk-WARNING **: Unable to locate image file in pixmap_path: "hline.png"
line 770
Gtk-WARNING **: Unable to locate image file in pixmap_path: "vline.png"
line 778
Gtk-WARNING **: Unable to locate image file in pixmap_path: "check1.png"
line 790
Gtk-WARNING **: Unable to locate image file in pixmap_path: "check2.png"
line 798
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"option1.png" line 809
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"option2.png" line 818
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"option_menu.png" line 829
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_horiz1.png" line 839
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"scrollbar_vert1.png" line 848
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button5.png" line 860
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"handle_vert_thumb.png" line 863
Gtk-WARNING **: Unable to locate image file in pixmap_path: "entry2.png"
line 877
Gtk-WARNING **: Unable to locate image file in pixmap_path: "entry1.png"
line 885
Gtk-WARNING **: Unable to locate image file in pixmap_path: "focus.png"
line 895
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"shadow2.png" line 907
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"shadow1.png" line 916
Gtk-WARNING **: Unable to locate image file in pixmap_path: "frame1.png"
line 925
Gtk-WARNING **: Unable to locate image file in pixmap_path: "frame2.png"
line 934
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"frame_gap.png" line 945
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"frame_gap_top_start.png" line 948
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"frame_gap_top_end.png" line 950
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button9.png" line 962
Gtk-WARNING **: Unable to locate image file in pixmap_path:
"button7.png" line 970
When one changes the theme to the default theme , then suddenly whoosh
, those pesky gtk warnings are gone ...
And yes , those images are correctly located according to my
"/usr/X11R6/share/themes/Pixmap/gtk/gtkrc" !
If there is no easy solution to that probem , can someone please tell
me how to invoke that single app in such a way that none of the gtk
resource files are taken into account ? So I can continue to use that
app in combination with the pixmap theme that I simply find amazingly
beautiful.
My kind regards , Pype Pascal.
More information about the fpc-devel
mailing list