例如不能找到下面的库
/usr/bin/ld: cannot find -lzlib
以详细模式运行ld
ld -lzlib --verbose
输出如下
==================================================
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.a failed
attempt to open /usr/local/lib64/libzlib.so failed
attempt to open /usr/local/lib64/libzlib.a failed
attempt to open /lib64/libzlib.so failed
attempt to open /lib64/libzlib.a failed
attempt to open /usr/lib64/libzlib.so failed
attempt to open /usr/lib64/libzlib.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.a failed
attempt to open /usr/local/lib/libzlib.so failed
attempt to open /usr/local/lib/libzlib.a failed
attempt to open /lib/libzlib.so failed
attempt to open /lib/libzlib.a failed
attempt to open /usr/lib/libzlib.so failed
attempt to open /usr/lib/libzlib.a failed
/usr/bin/ld.bfd.real: cannot find -lzlib
因此,最后修复它,以便可以使用自己的ZLIB版本(而不是捆绑版本)来编译程序
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
参考文献
[1] https://stackoverflow.com/questions/16710047/usr-bin-ld-cannot-find-lnameofthelibrary

本文详细介绍了当遇到ld无法找到lzlib库时的解决步骤。通过运行ld的详细模式,展示了系统尝试查找库的具体路径,并最终通过软链接指向正确的libz库,实现了修复,使得能够使用自定义的ZLIB版本进行程序编译。
959

被折叠的 条评论
为什么被折叠?



