Reputation: 101
I have a shared object ( libxyz.so ). Given LD_LIBRARY_PATH, how can find the exact location of this shared object? If i had a binary that depends on this lib, i would have used ldd on that.
Here is the reason why i ask: I have a cgi script which works when using LD_LIBRARY_PATH set to say VALUE1. It does not work when the path is set to VALUE2. I would like to find the exact location of the library as specified by the path in VALUE1 ( Note that VALUE1 has almost 20+ different locations )
Platform: Linux
Upvotes: 10
Views: 12024
Reputation: 76601
You can also use ldd. To do this, you would:
export LD_LIBRARY_PATH=VALUE1
)ldd /path/to/prog | grep libxyz.so
Upvotes: 6
Reputation: 6724
put a sleep(30); in your cgi, launch it from a browser, then look into /proc/$(pidof mycgi)/maps for actual libs used by your program.
Upvotes: 0
Reputation: 76601
Put this in a file:
#!/bin/bash
IFS=:
for p in ${LD_LIBRARY_PATH}; do
if [ -e ${p}/libxyz.so ]; then
echo ${p}
fi
done
and run it.
Upvotes: 14