-llibrary 如何确定和定位对象文件名

Posted

技术标签:

【中文标题】-llibrary 如何确定和定位对象文件名【英文标题】:-llibrary how to determine and locate object-file-name 【发布时间】:2014-07-01 07:41:53 【问题描述】:

我正在阅读Makefile,我看到-lz -ldl -ldw 链接器选项被传递给gcc。 我的 Linux 系统上没有安装这个库,所以编译失败。 我的问题是我一般如何确定要从此类链接器选项安装的库。上面的链接器选项只是示例,但我想知道在这种情况下一般如何确定库。

【问题讨论】:

不确定我是否理解这个问题。是关于如何确定-lz 映射到libz.so 吗?好吧,从字面上看,在开头添加lib,在结尾添加.so.a(如果没有手动限制,liker 会尝试两者)。 【参考方案1】:

我认为正如@keltar 所说,您最好的猜测是从要链接的库中删除 -l ,改为添加 lib 并在系统上搜索它作为包名称。 举个例子,如果你有-lz,你可以这样做

apt-cache search libz 

yum search libz

看看是否有明显的安装候选。如果这没有帮助,您可以查找由前面提到的相同原理构造的文件名。 对于-ldl,你会想出libdl.so,然后你可以这样做:

apt-file search libdl.so

它给出了一些命中。

这有帮助吗?

【讨论】:

以上是关于-llibrary 如何确定和定位对象文件名的主要内容,如果未能解决你的问题,请参考以下文章

如何在表格里迅速定位到别的文件,就像网页链接一样。描述的模糊了,请电脑高手指点

链接器如何使用静态库解析引用

我如何强迫杰克逊使用对象的定位器?

Linux下文件查找与定位

如何解决VB出现控件对象库未注册的问题?

UI对象库