Date: Sun, 16 Jul 2006 15:51:05 -0400 From: Bob Richards <bob@tamara-b.org> To: freebsd-hackers@freebsd.org Subject: LinkLib Issues In freebsd Lazarus Message-ID: <44BA98A9.9040903@tamara-b.org>
next in thread | raw e-mail | index | archive | help
Hi Folks: I believe this is a "hacker" issue, at least any possible solution is. I recently moved from Linux to FreeBSD as my primary work environment. My development system of choice is FreePascal. I installed FPC-2.0.2 from the official FreePascal distribution tar ball, and all compiled/installed without a hitch; all my CVS sources compile and run. My next step was to install Lazarus, the FPC IDE, and here is where I have run into troubles. A tar-ball install ran well until Lazarus was being Linked. The errors were: the following libraries were not found by ld: glib12, gdk12, and gtk12. a grep -r in the FPC-2.0.2 source tree revealed the problems, in every case of: packages/extra/ glib, gtk, and gdk the linklib statements were wrong thus: {$ifdef FreeBSD} gtkdll='gtk12'; {$linklib gtk12} So, I created a patch to fix the above constructs to: {$ifdef FreeBSD} gtkdll='gtk-12'; {$linklib gtk-12} For all three libraries; since freebsd names these libraries with a "-" I recompiled and reinstalled FPC-2.0.2 with the patches applied, re-tested the compiler; all OK! I went back to the Lazarus source tree gmake clean; gmake and received the following error: Free Pascal Compiler version 2.0.2 [2006/07/14] for i386 Copyright (c) 1993-2005 by Florian Klaempfl Target OS: FreeBSD/ELF for i386 Compiling lazarus.pp Linking ../lazarus /usr/bin/ld: cannot find -lgdk_pixbuf lazarus.pp(113,1) Error: Error while linking a locate gdk_pixbuf finds: /usr/X11R6/lib/libgdk_pixbuf-2.0 So, at this point I just sym-linked my libgdk_pixbuf-2.0 to libgdk_pixbuf: ln -s libgdk_pixbuf-2.0.a libgdk_pixbuf.a and ran gmake again, only to produce: Linking ../lazarus /usr/home/bob/lazarus/lcl/units/i386-freebsd/gtk/gtkint.o(.text+0x6f65): In function `DATASOURCEINITIALIZE': gtkobject.inc:2309: undefined reference to `gdk_pixbuf_get_from_drawable' Many many more "undefined reference" to something missing in gdk_pixbuf. so: freebsd's stock-installed gdk_pixbuf does not contain the functions needed! So, I went to ports and found "ruby18-gdk_pixbuf2-0.14.1" a make install provided "gdk_pixbuf2.so" but no "gdk_pixbuf2.a" !! I find it odd that no provision is provided to link to this lib! Funny! I moved away from Linux mainly because of Library-Hell issues :-) Any thoughts on this would be greatly appreciated. I seem to have run out of things to try here. Surely someone has successfully compiled Lazarus on freebsd.... Bob
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44BA98A9.9040903>