Archiv verlassen und diese Seite im Standarddesign anzeigen : gcc findet libs nicht
stefan-tiger
31.03.03, 12:54
hallo,
habe mdk9.0 und versuche grad was zu compilieren.
dem gcc befehl sind dann parameter ala "-IX11 -Im" usw usw angefügt.
leider kann er keine dieser libs finden.
konkret:
ich versuche gerade aus einem programmier tutorial (http://www.heise.de/ix/artikel/1999/12/160/) ein programm zu compilieren.
dafür sind einige libs erforderlich. habe also erstmal überprüft ob die entsprechenden rpm dateien installiert sind (Mandrake 9.0). der aufruf zum compilieren sieht so aus:
gcc test.c -lMesaGLU -lMesaGL -lXext -lX11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
und leider kommt folgende fehlermeldung:
/usr//bin/ld: cannot find -lMesaGLU
collect2: ld returned 1 exit status
ich vermute entweder hab ich die entsprechenden libs nicht installiert (was ich hoffentlich ausschliessen kann) oder irgendwelche umgebungsvariablen fehlen.
(ldconfig hab ich schon durchgeführt)
hier meine newbie fragen:
1. wie find ich manuell die entsprechenden libs? es gibt ja soviele lib verzeichnisse, für mich noch etwas durcheinander.
2. falls ich die libs dann finde wie bringe ich den gcc dazu diese zu benutzen?
danke
Spontan würde ich sagen, daß Dir ein Mesadevel Paket fehlt. Sieh mal nach, ob MDK ein solches Paket hat. Im Zweifelsfall überprüfen, ob die X11-devel Pakete installiert sind.
stefan-tiger
31.03.03, 13:25
rpm -qa | grep devel
libalsa2-devel-0.9.0-0.8rc2mdk
libstdc++5-devel-3.2-1mdk
libgdk_pixbuf2.0_0-devel-2.0.6-8mdk
apache-devel-1.3.26-6mdk
libncurses5-devel-5.2-27mdk
libunixODBC2-devel-2.2.2-9mdk
libmysql10-devel-3.23.52-1.2mdk
libpisock8-devel-0.11.3-2mdk
libgtkmm1.2-devel-1.2.9-3mdk
libgnomemm-1.2_9-devel-1.2.3-1mdk
libgnomecanvas2_0-devel-2.0.2-1mdk
zlib1-devel-1.1.4-3mdk
libmm1-devel-1.1.3-10mdk
rpm-devel-4.0.4-19mdk
libjpeg62-devel-6b-25mdk
liblinc1-devel-0.5.2-1mdk
libORBit0-devel-0.5.17-2mdk
libtiff3-devel-3.5.7-5mdk
libORBit2_0-devel-2.4.1-2mdk
libbonobo-activation4-devel-1.0.3-3mdk
libgail-gnome0-devel-1.0.0-2mdk
libbonoboui2_0-devel-2.0.2-1mdk
glibc-devel-2.2.5-16mdk
XFree86-devel-4.2.1-3mdk
libpng3-devel-1.2.4-3mdk
libglib2.0_0-devel-2.0.6-2mdk
libcups1-devel-1.1.16-0.4mdk
popt-devel-1.6.4-19mdk
libgnome-vfs2_0-devel-2.0.2-5mdk
libSDL_net1.2-devel-1.2.4-5mdk
libgmp3-devel-4.1-3mdk
libgtk+1.2-devel-1.2.10-29mdk
libatk1.0_0-devel-1.0.3-2mdk
libgtk+-x11-2.0_0-devel-2.0.6-8mdk
pam-devel-0.75-25mdk
libacl1-devel-2.0.11-1mdk
libopenssl0-devel-0.9.6g-1mdk
libMesaglut3-devel-4.0.3-6mdk
glibc-static-devel-2.2.5-16mdk
libqt3-devel-3.0.5-7mdk
libesound0-devel-0.2.29-1mdk
libungif4-devel-4.1.0-19mdk
pygtk-devel-0.6.9-3mdk
libimlib1-devel-1.9.14-5mdk
liboaf0-devel-0.6.10-3mdk
libat-spi1-devel-1.0.1-3mdk
libgnome-db0-devel-0.2.96-5mdk
libgnome-vfs0-devel-1.0.5-7mdk
libgnome-pilot1-devel-0.1.65-6mdk
libgnome2_0-devel-2.0.2-4mdk
libgnome-desktop-2_0-devel-2.0.6-4mdk
libfltk1.1-devel-1.1.0-0.rc2.4mdk
libSDL_image1.2-devel-1.2.2-3mdk
postgresql-devel-7.2.2-1mdk
readline-devel-4.3-4mdk
libMesaGLU1-devel-4.0.3-6mdk
libjpeg62-static-devel-6b-25mdk
libaudiofile0-devel-0.2.3-3mdk
libxml-devel-1.8.17-3mdk
libnetpbm9-devel-9.24-4mdk
libgdk-pixbuf2-devel-0.18.0-3mdk
libgnome-window-settings1-devel-2.0.1.1-4mdk
libbonobo2_0-devel-2.0.0-2mdk
libgda0-devel-0.2.96-8mdk
libSDL_ttf2.0-devel-2.0.5-3mdk
libglib1.2-devel-1.2.10-6mdk
freetype2-devel-2.0.9-3mdk
libdb3.3-devel-3.3.11-11mdk
libxml2-devel-2.4.23-4mdk
libsigc++1.0-devel-1.0.4-5mdk
libgnomeprint15-devel-0.36-3mdk
libart_lgpl2-devel-2.3.10-2mdk
libgnomeprintui2.0_0-devel-1.116.0-1mdk
libGConf2_4-devel-1.2.1-2mdk
libSDL1.2-devel-1.2.4-11mdk
libSDL_mixer1.2-devel-1.2.4-5mdk
libgtk+2.0_0-devel-2.0.6-8mdk
libpango1.0_0-devel-1.0.4-1mdk
libgdbm2-devel-1.8.0-18mdk
db1-devel-1.85-8mdk
libbzip2_1-devel-1.0.2-10mdk
pygnome-devel-1.4.2-3mdk
libunicode0-devel-0.4.gnome-4mdk
libgnome32-devel-1.4.2-1mdk
libgail17-devel-0.17-1mdk
libbonobo2-devel-1.0.20-4mdk
libgnomeprint2.0_0-devel-1.116.0-2mdk
libgnomeui2_0-devel-2.0.3-2mdk
also laut dieser ausgabe sind die devel-pakete von XFree, mesa-glut usw. installiert.
nur kann gcc sie eben nicht benutzen/finden. muss ich vielelciht irgendwo noch ein pfad angeben?
Hi,
laut rpmfind hat libMesaGLU1 folgende Dateien:
/usr/X11R6/include/GL/glu.h
/usr/X11R6/include/GL/glu_mangle.h
/usr/X11R6/lib/libGL.la
/usr/X11R6/lib/libGLU.la
/usr/X11R6/lib/libGLU.so
/usr/share/doc/libMesaGLU1-devel-4.0.3
/usr/share/doc/libMesaGLU1-devel-4.0.3/COPYING
/usr/share/doc/libMesaGLU1-devel-4.0.3/COPYRIGHT
/usr/share/doc/libMesaGLU1-devel-4.0.3/README
/usr/share/doc/libMesaGLU1-devel-4.0.3/README.X11
Dann müsste es reichen, wenn Du für den Linker anstatt -lMesaGLU -lGLU nimmst.
Gruß micha
stefan-tiger
31.03.03, 13:43
hm,
ich denke immernoch dass ich irgendwo noch ein pfad angeben muss.
ich hab hier mal einige ausgaben produziert die zeigen dass manche libs gefunden werden und manche nicht:
[stefan@ultratiger temp]$ gcc test.c -lGLU -lMesaGL -lXext -lX11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lGLU
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lMesaGL -lXext -lX11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lMesaGL
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lXext -lX11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lXext
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lX11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lX11
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lx11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lx11
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lglut
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lm -lXi -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lXi
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lm -lXmu -B/usr/X11/lib -o test.bin
/usr//bin/ld: cannot find -lXmu
collect2: ld returned 1 exit status
[stefan@ultratiger temp]$ gcc test.c -lGL -lm -B/usr/X11/lib -o test.bin
/tmp/ccm8PRO6.o: In function `Reshape':
/tmp/ccm8PRO6.o(.text+0x3aa): undefined reference to `gluPerspective'
/tmp/ccm8PRO6.o: In function `Key':
/tmp/ccm8PRO6.o(.text+0x41f): undefined reference to `glutPostRedisplay'
/tmp/ccm8PRO6.o: In function `SpecialKey':
/tmp/ccm8PRO6.o(.text+0x4ab): undefined reference to `glutPostRedisplay'
/tmp/ccm8PRO6.o: In function `Display':
/tmp/ccm8PRO6.o(.text+0x52f): undefined reference to `glutSwapBuffers'
/tmp/ccm8PRO6.o: In function `main':
/tmp/ccm8PRO6.o(.text+0x551): undefined reference to `glutInit'
/tmp/ccm8PRO6.o(.text+0x560): undefined reference to `glutInitWindowPosition'
/tmp/ccm8PRO6.o(.text+0x575): undefined reference to `glutInitWindowSize'
/tmp/ccm8PRO6.o(.text+0x582): undefined reference to `glutInitDisplayMode'
/tmp/ccm8PRO6.o(.text+0x592): undefined reference to `glutCreateWindow'
/tmp/ccm8PRO6.o(.text+0x5b5): undefined reference to `glutReshapeFunc'
/tmp/ccm8PRO6.o(.text+0x5c5): undefined reference to `glutKeyboardFunc'
/tmp/ccm8PRO6.o(.text+0x5d5): undefined reference to `glutSpecialFunc'
/tmp/ccm8PRO6.o(.text+0x5e5): undefined reference to `glutDisplayFunc'
/tmp/ccm8PRO6.o(.text+0x5ed): undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status
er findet z.b. -IGL und -Im jedoch nicht -IX11.
hier meine /etx/ld.so.conf:
[root@ultratiger temp]# cat /etc/ld.so.conf
/usr/X11R6/lib
/usr/lib/qt3/lib
/usr/lib
/usr/local/lib
/usr/lib/X11
hier noch eine vielleicht hilfreiche information:
[stefan@ultratiger temp]$ ll /usr/X11R6/lib/libG*
-rwxr-xr-x 1 root root 755 Aug 4 2002 /usr/X11R6/lib/libGL.la*
lrwxrwxrwx 1 root root 21 Mär 31 12:22 /usr/X11R6/lib/libGL.so.1 -> libGLwrapper.so.0.1.6*
-rwxr-xr-x 1 root root 244848 Aug 4 2002 /usr/X11R6/lib/libGL.so.1.0*
-rwxr-xr-x 1 root root 1971440 Aug 4 2002 /usr/X11R6/lib/libGL.so.1.3.403*
-rwxr-xr-x 1 root root 803 Aug 4 2002 /usr/X11R6/lib/libGLU.la*
lrwxrwxrwx 1 root root 11 Jan 7 19:54 /usr/X11R6/lib/libGLU.so -> libGLU.so.1*
lrwxr-xr-x 1 root root 17 Dez 11 23:52 /usr/X11R6/lib/libGLU.so.1 -> libGLU.so.1.3.403*
-rwxr-xr-x 1 root root 599072 Aug 4 2002 /usr/X11R6/lib/libGLU.so.1.3.403*
-rw-r--r-- 1 root root 27316 Sep 13 2002 /usr/X11R6/lib/libGLw.a
-rwxr-xr-x 1 root root 147872 Aug 4 2002 /usr/X11R6/lib/libGLwrapper.so.0.1.6*
ich weiss leider nicht was nicht stimmt. jedoch schonmal danke für deine antworten.
gruß
stefan-tiger
31.03.03, 16:08
hab es jetzt doch geschafft. mit
gcc test.c -L/usr/X11R6/lib -lGLU -lGL -lXext -lX11 -lm -lglut -lXi -lXmu -B/usr/X11/lib -o test.bin
hat es geklappt, allerdings muss ich mich wundern weil /usr/X11R6/lib in der datei /etc/ld.so.conf aufgeführt ist. müssten die libs dann nicht automatisch gefunden werden??
gruß
Hi,
nein, die /etc/ld.so.conf wird nur zur Laufzeit ausgewertet. Beim Kompilieren musst Du dem Linker alle Suchpfade für Bibliotheken außer /usr/lib über -L mitteilen.
Gruß micha
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.