为什么LD_LIBRARY_PATH无效

Why LD_LIBRARY_PATH is not effective?

本文关键字:无效 PATH LIBRARY 为什么 LD      更新时间:2023-10-16

我正在尝试编译libpng,它需要libz。我已经在家里安装了我的所有者libz.so.1,并设置了LD_LIBRARY_PATH。但没有得到任何结果,因为ldd的输出显示它仍然使用/usr/local/lib/libz.so.1

然后make的输出显示为"-L/home/zlib-lz"。为什么?

您可能需要从/home/mylibs/libz.so/home/mylibs/libz.so.1的符号链接。

注意,-lz将搜索libz.so,但不会搜索libz.so.1,因此链接器将继续搜索,并将在/usr/local/lib中找到这样的链接。

除此之外,您还想在可执行文件的头中显示NEEDED条目(记录动态依赖关系),其中包括:

$ objdump -x a.out | grep NEEDED

以查看它们是否以完整路径记录为libz.solibz.so.1