ich habe ein Programm "UnitTest" und eine Bibliothek "libTest.so" in einem Ordner.
Ich versuche die Bibilothek zu laden über:
Code: Alles auswählen
std::string stdStr("libTest.so");
const char* cStr = stdStr.c_str();
m_pModule = dlopen(cStr, RTLD_LAZY);
Aber einreadelf -d CfUnitTest |head -20
Dynamic section at offset 0x342d20 contains 33 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000001d (RUNPATH) Library runpath: [/mnt/e/code/RT/buildGcc/bin]
führt zu:LD_DEBUG=all ./bin/UnitTest
Hat jemand eine Ahnung, warum nicht nicht im Runpath gesucht und damit die Bibilothek nicht gefunden wird?1498: file=libTest.so [0]; dynamically loaded by /mnt/e/code/RT/buildGcc/bin/libCf.so [0]
1498: find library=libTest.so [0]; searching
1498: search cache=/etc/ld.so.cache
1498: search path=/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls:/lib/x86_64-linux-gnu/x86_64:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-gnu/tls:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu:/lib/tls/x86_64:/lib/tls:/lib/x86_64:/lib:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/x86_64:/usr/lib (system search path)
1498: trying file=/lib/x86_64-linux-gnu/tls/x86_64/libTest.so
1498: trying file=/lib/x86_64-linux-gnu/tls/libTest.so
1498: trying file=/lib/x86_64-linux-gnu/x86_64/libTest.so
1498: trying file=/lib/x86_64-linux-gnu/libTest.so
1498: trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/libTest.so
1498: trying file=/usr/lib/x86_64-linux-gnu/tls/libTest.so
1498: trying file=/usr/lib/x86_64-linux-gnu/x86_64/libTest.so
1498: trying file=/usr/lib/x86_64-linux-gnu/libTest.so
1498: trying file=/lib/tls/x86_64/libTest.so
1498: trying file=/lib/tls/libTest.so
1498: trying file=/lib/x86_64/libTest.so
1498: trying file=/lib/libTest.so
1498: trying file=/usr/lib/tls/x86_64/libTest.so
1498: trying file=/usr/lib/tls/libTest.so
1498: trying file=/usr/lib/x86_64/libTest.so
1498: trying file=/usr/lib/libTest.so
1498: symbol=dlerror; lookup in file=./bin/UnitTest[0]