Re: Compiling Glib.pm
- From: muppet <scott asofyet org>
- To: Turd Turtle <turdturtle gmail com>
- Cc: gtk-perl-list gnome org
- Subject: Re: Compiling Glib.pm
- Date: Sun, 10 Jun 2007 11:58:52 -0400
On May 30, 2007, at 7:43 PM, Turd Turtle wrote:
Note the: -L/net/bmachine/x/rich/usr/local/lib ; I installed
the glib-2.12.12 libraries into /net/bmachine/x/rich/usr/local/lib
When I take out the -L/net/bmachine/x/rich/usr/local/lib flag,
it does not link (cannot find libraries glib, gobject, gthread), so
I know that it is not linking to /usr/lib (the machine's /usr/
lib has libglib-2.0.so.0.400.7 installed).
So I am not sure why I still get this error (since everything
compiles perfectly AND I do link correctly):
INPUT> /usr/bin/perl -I blib/lib -I blib/arch -MGlib::GenPod -MGlib \
-e 'add_types ("doctypes"); $Glib::GenPod::COPYRIGHT=
"Copyright (C) 2003-2007 by the gtk2-perl team.\n\nThis software is
licensed under the LGPL. See L<Glib> for a full notice.\n";
$Glib::GenPod::MAIN_MOD="Glib"; xsdoc2pod("build/doc.pl", "blib/
lib", "build/podindex");'
OUTPUT>/usr/bin/perl: symbol lookup error: blib/arch/auto/Glib/
Glib.so: undefined symbol: g_bookmark_file_error_quark
make: *** [build/podindex] Error 127
What do you get from this command?
ldd blib/arch/auto/Glib/Glib.so | grep libgtk
Does this print the /net/bmachine/x/rich/usr/local/lib path, or does
it print /usr/lib?
When linking, the Makefiles supply the correct -L$path line and the
linker can find the correct libraries. HOWEVER, if that directory is
not in your system's normal runtime linker search path, the system
will not look there at runtime for the library!
If the command above prints out /usr/lib instead of /net/bmachine/x/
rich/usr/local/lib, then this is what's happening. Try doing this:
export LD_LIBRARY_PATH=/net/bmachine/x/rich/usr/local/lib:
$LD_LIBRARY_PATH
and then run the build command again. If that fixes the problem, you
have a few options:
1. Add /net/bmachine/x/rich/usr/local/lib to /etc/ld.so.conf
(not recommended, as you must be root)
2. Add /net/bmachine/x/rich/usr/local/lib to LD_LIBRARY_PATH in
your shell's login setup
3. For scripts that use Gtk2, use a little wrapper script that
sets up the environment appropriately.
After a few years of messing up my systems, i heartily recommend
option 3. You'll probably need this anyway for setting PERL5LIB to
point perl to a nonstandard install location for Gtk2.
Hints:
- The header include paths come from "pkg-config --cflags gobject-2.0"
- The link paths come from "pkg-config --libs gobject-2.0"
- When you attempt to *run*, you get what is in LD_LIBRARY_PATH. If
the directory listed in the output of pkg-config --libs is not in
LD_LIBRARY_PATH (or /etc/ld.so.conf), then you will have to
manipulate your environment by hand.
- If you're not doing anything special or abnormal, then your system
is misconfigured.
--
The stereo, playing the Beastie Boys' "Rhymin' and Stealin'": "I'll
steal your girlie like I stole your bike!"
Elysse: "You mean, take off the chain and ride away?"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]