[LUGOS-PROG] linkanje knjižnic

Miha Tomšič miha.tomsic at guest.arnes.si
Wed Dec 26 14:33:16 CET 2001


	Hojla!

On Tue, 25 Dec 2001, Rok Papež wrote:
> Ali so dotični imeniki v /etc/ld.so.conf. Si pognal ldconfig ?

Ti imeniki so v ld.so.conf. Gre za standardne knjixnice kot so -lX11 in
-lXext, ki jih normalno linker vedno najde. Če pa so to samo pomožne
knjižnice, s katerimi program ne dela direktno, ampak jih kličejo zlinkane
knjižnice, potem pa jih kar na lepem ne najde inzačne nakladati nekaj o
uporabi -rpath.

Vzemimo program sdltest.c:
#include <SDL.h>

int main(int argc, char **argv) {
        return 0;
} // main()

gcc -o sdltest sdltest.c -I/usr/include/SDL -D_REENTRANT -L/usr/lib -lSDL
-lpthread -L/usr/X11R6/lib -lXxf86dga -lXxf86vm -lXv

/usr/bin/ld: warning: libX11.so.6, needed by /usr/lib/libSDL.so, not found
(try using -rpath or -rpath-link)
/usr/bin/ld: warning: libXext.so.6, needed by /usr/lib/libSDL.so, not
found (try using -rpath or -rpath-link)
/usr/X11R6/lib/libXxf86dga.a(XF86DGA.o): In function `XF86DGAGetVideoLL':
XF86DGA.o(.text+0x66): undefined reference to `XMissingExtension'
XF86DGA.o(.text+0x96): undefined reference to `_XFlush'
XF86DGA.o(.text+0xd0): undefined reference to `_XReply'
/usr/X11R6/lib/libXxf86dga.a(XF86DGA.o): In function
`XF86DGADirectVideoLL':
...
...
...in tega je dol še eno morje, pač vse reference na X11 in Xext.

Če pa zadevo prevedem takole: 

gcc -o sdltest sdltest.c -I/usr/include/SDL -D_REENTRANT -L/usr/lib -lSDL
-lpthread -L/usr/X11R6/lib -lXxf86dga -lXxf86vm -lXv -lX11 -lXext

je pa vse krasno. ldd sdltest knjižnici najde normalno:
	...
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400b5000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40191000)
	...

A se komu porodi kakšna žmohtna?

Hvala in srečno,

	Miha...

 - Miha Tomšič --- C. na postajo 55 -- SI-1351 Brezovica pri Lj. --- SLOVENIA -




More information about the lugos-prog mailing list