[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