|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morbegno (SO)
Messaggi: 1410
|
linux,shared objects.
allora io sto svilupando la mia tesi sotto linux in opengl,e per famrmi aprire una finestra fs ho fatto un brutale taglia incolla da un tutorial che ho trovato in giro(nehe).
su un pc ho gentoo e su un altro rh8.su uno xfree4.2 e su gentoola 4.3. ieri il pc con gentoo mi molla allora passo a rh,e qui iniziano i prob. se cerco di far partire un a.out su rh mi dice che manca un shared object, lo cerco in lib ed effetivamente non c'e.... allora cerco di eseguire un tutorial di nehe,nisba anche quello, anche li mi manca un shared obj. cancello l'eseguibile e rilancio il suo make lo compila e funge. provo sul mio ricompilo il mi il linker mi dice che non risolve delle referenze. vi faccio vedere i vari output: //sezione nehe [root@master lesson02]# ldd lesson02 libGL.so.1 => /usr/lib/libGL.so.1 (0x40025000) libGLU.so.1 => /usr/lib/libGLU.so.1 (0x40073000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x400ef000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400fd000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x401db000) libm.so.6 => /lib/i686/libm.so.6 (0x4066d000) libdl.so.2 => /lib/libdl.so.2 (0x40690000) libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40693000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40745000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) [root@master lesson02]# cat Makefile CC = gcc -Wall -pedantic -ansi all: $(CC) lesson02.c -o lesson02 -L/usr/X11R6/lib -lGL -lGLU -lXxf86vm clean: @echo Cleaning up... @rm lesson02 //sezione mio prg [root@master src]# ldd tesi libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40025000) libGLU.so.1 => /usr/lib/libGLU.so.1 (0x40035000) libGL.so.1 => /usr/lib/libGL.so.1 (0x400b1000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x400fe000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40107000) libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x4011e000) libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40134000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40187000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40195000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4019d000) libdl.so.2 => /lib/libdl.so.2 (0x4027b000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4027e000) libXxf86vm.so.1 => not found libc.so.6 => /lib/i686/libc.so.6 (0x42000000) libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x402af000) libm.so.6 => /lib/i686/libm.so.6 (0x40361000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40383000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x4038b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) compiklato con g++ -c *.cpp gcc -L/usr/X11R6/lib -lGL -lGLU -lXxf86vm *.o errore gcc/linker [root@master src]# gcc -L/usr/X11R6/lib -lGL -lGLU -lXxf86vm *.o screen.o: In function `MasScreen::killGLScreen()': screen.o(.text+0x72): undefined reference to `XF86VidModeSwitchToMode' screen.o(.text+0x89): undefined reference to `XF86VidModeSetViewPort' screen.o: In function `MasScreen::createGLScreen(char*, int, int, int)': screen.o(.text+0xf0): undefined reference to `XF86VidModeQueryVersion' screen.o(.text+0x10b): undefined reference to `XF86VidModeGetAllModeLines' screen.o(.text+0x26f): undefined reference to `XF86VidModeSwitchToMode' screen.o(.text+0x286): undefined reference to `XF86VidModeSetViewPort' collect2: ld returned 1 exit status suggerimenti consigli aiuti? |
|
|
|
|
|
#2 | ||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
gcc -L<...> -lGLU -lGL *.o /usr/X11R6/lib/libXxf86vm.a Strano che con -lXxf86vm non prenda da solo il .a ...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
In alternativa puoi creare il .so dal .a; esegui questi comandi da root da dentro la directory /usr/X11R6/lib:
Codice:
ld -shared --whole-archive libXxf86vm.a -o libXxf86vm.so.1 -L /usr/X11R6/lib -lX11 -lXext ln -s libXxf86vm.so.1 libXxf86vm.so ldconfig
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morbegno (SO)
Messaggi: 1410
|
thx mille sensi
non e stato necessario creare il .so ma e bastato metterlo come argomento al gcc,come da e consigliato in primis. grazie anche per il 2 consiglio,molto utile,io avevo provato con un ar |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:46.



















