是否可以在 18.04 x86_64 中从 apt 安装静态库?

是否可以在 18.04 x86_64 中从 apt 安装静态库?

我正在尝试构建一个依赖于二进制分布式静态库的项目。

链接器抱怨它找不到ini_config函数,其中包括:

config_params.c:(.text+0x16f): undefined reference to  `ini_get_config_valueobj'

它找到了动态库,但没有找到静态版本:

attempt to open /usr/lib/gcc/x86_64-linux-gnu/7/libini_config.a failed
attempt to open /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libini_config.so succeeded

这些文件在 debian stretch 上存在。有没有办法在 ubuntu 上也获取它们?

答案1

所有软件包似乎都安装了它们的静态库。它们可以在 中找到/usr/lib/x86_64-linux-gnu

显然,使用时,链接器会首先选择动态库-lsomelib。要覆盖这一点,可以使用-l:libsomelib.a,然后它将仅匹配确切的文件名somelib.a。使用-L/usr/lib/x86_64-linux-gnu与“链接”动态库相同的方法。

要调试库搜索阶段,您可以将 添加-Wl--verboseLDFLAGS然后gcc将显示它为您的-lXXX选项尝试的每条路径。

请记住,档案仅检查一次,如这个答案,如果仍然找不到某些符号,则可能必须重新排序参数。

相关内容