我正在阅读 Makefile
,其中我看到 -lz -ldl -ldw
链接器选项被传递给 gcc
。
我的 Linux 系统上没有安装这个库,所以编译失败。
我的问题是一般如何确定要从此类链接器选项安装的库。上面的链接器选项只是示例,但我想知道一般情况下如何确定这种情况下的库。
最佳答案
我认为正如 @keltar 所说,您最好的猜测是从要链接的库中删除 -l,添加 lib
并在您的系统上搜索它作为包名称。
举个例子,如果你有-lz
,你可以做
apt-cache search libz
或
yum search libz
查看是否有明显的安装候选。如果这没有帮助,您可以查找按上述相同原理构造的文件名。
在 -ldl
的情况下,你会想出 libdl.so
然后你可以这样做:
apt-file search libdl.so
它给出了一些命中。
这有帮助吗?
关于c++ - -llibrary 如何确定和定位对象文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24504940/