Pregunta

Estoy sentado en un OpenSuse 11.1 x 64 Caja y tengo un módulo que utiliza SIGC ++. Cuando se enlaza así:

g++ [a lot of o's, L's and l's] -lsigc-2.0

consigo

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lsigc-2.0

Sin embargo, la biblioteca está allí.
En el sistema de archivos:

$ sudo find / -name "libsigc-2.0*"
/usr/lib64/libsigc-2.0.so.0.0.0
/usr/lib64/libsigc-2.0.so.0
/usr/lib64/libsigc-2.0.so

En ld.so.conf tengo:

/usr/lib64

Y cuando se invoca ldconfig:

$ ldconfig -v | grep sigc
libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0

¿Por qué?

¿Fue útil?

Solución

Estoy tan tonta. Es un antiguo código base y justo antes del -lsigc-2,0 comunicado que tenía un

-Wl,-Bstatic

Obviamente, no hay librerias estáticas para libsigc (ya no).

Otros consejos

Es posible que libsigc-2.0.so estaba vinculado con un SONAME aparte de libsigc-2.0.

  

objdump -p /usr/lib64/libsigc-2.0.so | grep SONAME

Si usted ve algo inesperado, por ejemplo, libsigc, puede que tenga que crear un enlace simbólico adicional con ese nombre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top