为什么LD_LIBRARY_PATH无效?

时间:2013-07-15 12:51:40

标签: c++ c linux gcc libpng

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

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

1 个答案:

答案 0 :(得分:4)

您可能需要从/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