Reputation: 1336
I'm having problems with a library, which cannot be found, despite being there in proper version.
ldd /lib/libQt5Core.so
linux-gate.so.1 (0xb77ac000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb71d4000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb71b9000)
libicui18n.so.57 => /lib/i386-linux-gnu/libicui18n.so.57 (0xb6f20000)
libicuuc.so.57 => /lib/i386-linux-gnu/libicuuc.so.57 (0xb6d74000)
libicudata.so.57 => /lib/i386-linux-gnu/libicudata.so.57 (0xb54f6000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb54f1000)
libgthread-2.0.so.0 => /lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb54ee000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb53c0000)
libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6 (0xb5242000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb5140000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb5120000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb4f47000)
/lib/ld-linux.so.2 (0xb77af000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb4ed0000)
The libQt5Core library is in /lib and has all dependencies met. But if something wishes to use it:
ldd /lib/libQt5Concurrent.so
linux-gate.so.1 (0xb7735000)
libQt5Core.so.5 => not found
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb76f1000)
libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6 (0xb7573000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7471000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7453000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb727a000)
/lib/ld-linux.so.2 (0xb7738000)
libQt5Core is no longer found. Both libs have the same architecture. Does anyone have any ideas?
Upvotes: 2
Views: 1280
Reputation: 186
You can see what it sees by running "ldconfig -p" and grepping for what you are looking for:
# ldconfig -p |grep libclnt
libclntsh.so.11.1 (libc6) => /lib/libclntsh.so.11.1
Set the LD_LIBRARY_PATH to all your necessary library paths then run 'ldconfig' by itself and make sure you don't have 32-bit and 64-bit conflicts and it should work.
SET LD_LIBRARY_PATH=:/usr/lib/oracle/12.2/client64/lib:/usr/lib/oracle/11.2/client/lib
run "ldconfig" by itself
Then run "ldconfig -p" to see what it sees (in this case I grep'd for what I was looking for:
# ldconfig -p |grep libclnt
libclntsh.so.12.1 (libc6,x86-64) => /lib/libclntsh.so.12.1
libclntsh.so.12.1 (libc6,x86-64) => /lib64/libclntsh.so.12.1
libclntsh.so.11.1 (libc6) => /lib/libclntsh.so.11.1
And you can see how it saw the libclntsh.so.12.1 library which was missing previously.
Thanks, David
Upvotes: 0
Reputation: 1336
Turns out it's an issue with kernel being too old. On newer ones it works fine.
Upvotes: 1