Sto creando un'applicazione C++, utilizzando Netbeans 6.9 come IDE. avere una libreria C++ che è un wrapper per una libreria pura C/usr/bin/ld: avviso: abc.so, necessario per xyz.so non trovato (provare a utilizzare -rpath o -rpath-link) "
ho aggiunto correttamente il file al progetto (utilizzando l'opzione File libreria Aggiungere) Ecco l'output prodotto dal g ++ e il linker:..
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 sulla libreria wrapper C++ e ottenuto questo output:
$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)
Quindi, anche se il file esiste sulla mia macchina, sembra che non si trovi nella cache della mia libreria. Ho provato a usare ldconfig, ma il problema rimane. Qualche idea su come risolvere questo?
Avevo il sospetto che si trattasse di un problema di configurazione. Come faccio a "Assicurarsi che la directory in cui è posizionato libtanlib_core.so sia configurata in /etc/ld.so.conf" ?. Puoi spiegare come metterei la directory in ld.so.conf ?. È sufficiente modificare manualmente il file o è necessario utilizzare uno strumento? – oompahloompah
@oompahloompah La modifica manuale farà il lavoro –
Grazie. L'avevo già provato e ha funzionato. – oompahloompah