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

标签 c++ c linux gcc makefile

我正在阅读 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/

相关文章:

c++ - 处理MFC中的耗时操作

c - OpenMP 给出(核心转储)

c++ - 将 ppm 文件通过管道传输到 ffmpeg 以在 C++ 中创建电影

c - "not stripped"但 "no debug symbols"

c - fscanf() 仅写入输入文件中的部分内容而不是全部内容

linux - Virtual Box 和 Windows 7 主机的 Gvim 重绘问题

linux - Bash 确定最高变量和最低变量之间的差异

c++ - 读取数字文本文件并存储到 C++ 中的整数数组中

c++ - 忽略: warning: unused parameter有什么后果

C++ 头文件和源文件 - 包含哪些内容以及按什么顺序