Estoy construyendo una aplicación C++, usando Netbeans 6.9 como mi IDE. I tener una biblioteca de C++ que es una envoltura alrededor de una biblioteca C pura/usr/bin/ld: advertencia: abc.so, necesario por xyz.so no encontrado (intente con -rpath o -rpath-link) "
he añadido correctamente el archivo de proyecto (utilizando la opción archivo biblioteca Añadir) Aquí está la salida producida por g ++ y el vinculador:..
g++ -o dist/Debug/GNU-Linux-x86/testluaembed build/Debug/GNU-Linux-x86/src/main.o build/Debug/GNU-Linux-x86/src/LuaBinding.o -L../../mainline/tanlib_core/dist/Debug/GNU-Linux-x86 -L../../mainline/tanlib++/dist/Debug/GNU-Linux-x86 -L/usr/lib ../../mainline/tanlib_core/dist/Debug/GNU-Linux-x86/libtanlib_core.so ../../mainline/tanlib++/dist/Debug/GNU-Linux-x86/libtanlibpp.so /usr/lib/liblua5.1.a /usr/lib/libtolua++5.1.a /usr/local/boost_1_45_0/stage/lib/libboost_filesystem.a /usr/local/boost_1_45_0/stage/lib/libboost_system.a
/usr/bin/ld: warning: libtanlib_core.so, needed by ../../mainline/tanlib++/dist/Debug/GNU-Linux-x86/libtanlibpp.so, not found (try using -rpath or -rpath-link)
/usr/lib/liblua5.1.a(loadlib.o): In function `ll_loadfunc':
/usr/lib/liblua5.1.a(loadlib.o): In function `ll_loadfunc':
/usr/lib/liblua5.1.a(loadlib.o): In function `ll_loadfunc':
/usr/lib/liblua5.1.a(loadlib.o): In function `ll_loadfunc':
/usr/lib/liblua5.1.a(loadlib.o): In function `gctm':
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/testluaembed] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
corro LDD en la biblioteca de derivador de C++ y tiene esta salida:
$ldd libtanlibpp.so
linux-vdso.so.1 => (0x00007fff123c0000)
libtanlib_core.so => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fe4f0fde000)
libm.so.6 => /lib/libm.so.6 (0x00007fe4f0d5a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fe4f0b43000)
libc.so.6 => /lib/libc.so.6 (0x00007fe4f07c0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe4f15ee000)
Entonces, aunque el archivo existe en mi máquina, parece que no está en la caché de mi biblioteca. Intenté usar ldconfig, pero el problema persiste. ¿Alguna idea de como resolver esto?
Sospeché que se trataba de un problema de configuración. ¿Cómo puedo "Asegúrese de que el directorio donde se coloca libtanlib_core.so esté configurado en /etc/ld.so.conf" ?. ¿Puede explicar cómo colocaría ese directorio en ld.so.conf ?. ¿Simplemente edito manualmente el archivo o necesito usar una herramienta? – oompahloompah
@oompahloompah La edición manual hará el trabajo –
Gracias. Ya lo había intentado y funcionó. – oompahloompah