[eside-ghost] Problema haciendo "make" con AMD64 en Ubuntu
Alvaro Uría
fermat en rigel.deusto.es
Jue Abr 30 23:57:18 CEST 2009
Aupi,
Aitor Arberas [30/04/09 14:31 +0200] escribió:
> Bueno resulta que estoy tratando de compilar unas clases en C en mi
> ubuntu (9.04) y al hacer el make me muestra el siguiente error:
>
> g++ -fPIC -shared -lm -lpthread TcpListener.o -o libesidesocket.so
> /usr/bin/ld:
> TcpListener.o: relocation R_X86_64_32 against `a local symbol' can not
> be used when making a shared object; recompile with -fPIC
> TcpListener.o: could not read symbols: Bad value
Según este mensaje, el problema está en "TcpListener.o". Es como si no
lo hubieses compilado con la opción "-fPIC". ¿Puedes probar, si no lo
has hecho ya, a borrar "TcpListener.o" y volver a ejecutar el Makefile?
> Éste es el archivo Makefile:
>
> CC=g++ -fPIC
> LDFLAGS=-shared -lm -lpthread
>
> libesidesocket.so: TcpListener.o
> $(CC) $(LDFLAGS) TcpListener.o -o libesidesocket.so
>
> TcpListener.o: TcpListener.cc TcpListener.h
> $(CC) -c TcpListener.cc
Según este Makefile, no se deberÃa dar este problema que tienes.
> Como veis, ya he tratado de incluir el comando -fPIC (porque he
> tratado de resolverlo usando google), no se si lo he hecho como se
> supone que debe hacerse, pero el hecho es que me sigue dando ese error
> que veis.
La "regla de oro" serÃa que "-shared" y "-fPIC" fuesen juntos, en
AMD64.
Más información sobre el tema,
http://en.wikipedia.org/wiki/Position-independent_code
> A ver si alguno ya se ha topado anteriormente con este problema y
> puede echarme un cable...
Yo __o_/
> Un saludo y gracias.
Saludos,
Alvaro.
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/pgp-signature
Tamaño : 197 bytes
Descripción: Digital signature
Url : https://listas.deusto.es/mailman/private/eside-ghost/attachments/20090430/6eaab452/attachment.pgp
Más información sobre la lista de distribución eside-ghost