ld no puede encontrar la biblioteca que se instala
-
21-09-2019 - |
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é?
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