ld cannot find X11 libs
EJS
ejshoor@yahoo.com
Mon Feb 6 22:50:00 GMT 2006
Hi all,
I am not sure that this is a cross compiling issue,
but if it isn't hopefully someone can point me in the
right direction.
I have an application that I am trying to cross
compile, source: i686-cygwin
target:i686-unknown-linux.
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.4
GLIBC_DIR=glibc-2.3.5
LINUX_DIR=linux-2.6.8
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.11.
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.5
The problem that I am having is that ld does not seem
to find some of the X11 libs that it should.
When I execute this:
g++ -o mythbrowser main.o webpage.o tabview.o
moc_webpage.o moc_tabview.o -L/usr/lib/qt-3.3/lib
-L/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/usr/X11R6/lib
-L/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/usr/lib
-lmyth-0.18.1 -L/opt/kde3/lib -lkhtml -lqt-mt -lXext
-lX11 -lm
I get a bunch of warnings that look like this:
/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/lib/gcc/i686-unknown-linux-gnu/3.4.4/../../../../i686-unknown-linux-gnu/bin/ld:
warning: libXrender.so.1, needed by
/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/usr/lib/libmyth-0.18.1.so,
not found (try using -rpath or -rpath-link)
Which eventually turn into errors.
The problem is that libXrender.so.1 definitely exists
in one of the library paths specified:
ls -l
/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/usr/X11R6/lib/libXrender*
-rw-r--r-- 1 mythtv mkgroup-l-d 38144 Jan 29 21:54
libXrender.a
lrwxrwxrwx 1 mythtv mkgroup-l-d 19 Jan 29 21:54
libXrender.so -> libXrender.so.1.2.2
lrwxrwxrwx 1 mythtv mkgroup-l-d 19 Jan 29 21:54
libXrender.so.1 -> libXrender.so.1.2.2
-rwxr-xr-x 1 mythtv mkgroup-l-d 29636 Jan 29 21:54
libXrender.so.1.2.2
I tried addding -rpath and/or -rpath-link to the
compile but the results were the same (ie the lib is
not found).
I was able to resolve the problem for one library by
adding it the compile string explictly e.g.:
g++ -o mythbrowser main.o webpage.o tabview.o
moc_webpage.o moc_tabview.o -L/usr/lib/qt-3.3/lib
-L/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/usr/X11R6/lib
-L/opt/crosstool/gcc-3.4.4-glibc-2.3.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/usr/lib
-lmyth-0.18.1 -L/opt/kde3/lib -lkhtml -lqt-mt -lXext
-lX11 -lm -lXrender
but this is really not a workable strategy because
there are so many X11 libs.
Any ideas.
Thanks,
J
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.org
More information about the crossgcc
mailing list