1

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

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

4

1 回答 1

4

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

请注意,它-lz会搜索libz.so,但不会libz.so.1,因此链接器将继续搜索并会在/usr/local/lib.

除此之外,您还希望在可执行文件的标头中显示 NEEDED 条目(记录动态依赖项),其中:

$ objdump -x a.out | grep NEEDED

查看它们是否以完整路径记录, aslibz.so或 as libz.so.1

于 2013-07-15T13:00:05.017 回答