[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