Problém s linkovaním .so
Marek Antozi
pavuk na perzeus.sjf.tuke.sk
Pátek Leden 21 12:46:38 CET 2000
Dobrý deň.
Trosšku programujem a program mám urobený tak, že používa mnou vytvorenú
.so knižnicu.
Túto knižnicu kompilujem a linkujem následovne:
cc -fstrength-reduce -O3 -Wall -D__RELEASE -DNO_SEAL -fPIC -c hw_x.c -o
lxwin.o
cc -shared -fPIC -o bin/lxwin.so lxwin.o -L /usr/X11R6/lib -lX11 -lXext
-lXxf86vm -lXxf86dga
toto urobí niečo také:
ldd lxwin.so
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x2aab5000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x2ab59000)
libc.so.6 => /lib/libc.so.6 (0x2ab65000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x55555000)
ciže všetky undefined symbols sú hľadané v systémových .so
Lenže ja potrebujem niečo také že tieto veci budú prilinkované k mojej
.so, čiže v podstate bude staticky zlinkovaná. Skúšal som niečo také:
cc -fstrength-reduce -O3 -Wall -D__RELEASE -DNO_SEAL -fPIC -c hw_x.c -o
lxwin.o
cc -shared -fPIC -o bin/lxwin.so lxwin.o -L /usr/X11R6/lib
/usr/X11R6/lib/libX11.a /usr/X11R6/lib/libXext.a
/usr/X11R6/lib/libXxf86vm.a /usr/X11R6/lib/libXxf86dga.a
Ale to mi program zatrúbi pri funkcii dlsym, undefined symbol :(
Ako to spraviť aby .so používala externe nanajvýš tak libc.so.6 a
/lib/ld-linux.so.2 ?
Prosím pomožte mi ;)
marek
LiNUX - Live free or die
______________________________________________________________________
Contact:
antozim na tuke.sk
pgp finger pavuk na perzeus.sjf.tuke.sk
Další informace o konferenci Linux