gpt4 book ai didi

build - 为什么 Libtool 不想与静态库链接?

转载 作者:行者123 更新时间:2023-12-04 15:14:15 26 4
gpt4 key购买 nike

我想使用 GNU Autotools 构建一个使用 ZipArchive 的共享库,但我遇到了这个问题:

警告:链接器路径没有库 -lziparch 的真实文件。
我有能力使该库在何时自动链接
你链接到这个库。但我只能在你有一个
库的共享版本,您似乎没有
因为我确实检查了链接器路径以查找文件开始
使用 libziparch 并且没有候选人通过文件格式测试
使用文件魔术。最后检查的文件:/usr/local/ZipArchive/ZipArchive/libziparch.a
此处已删除的库间依赖项将是
每当程序与此库链接时自动添加
或被声明为 -dlopen 它。

如果我构建一个静态库或者如果我使用 ZipArchive 的共享库,它可以工作,但问题是 ZipArchive 源代码附带的 makefile 只构建一个静态库。

如何强制 Libtool 与静态库链接?

最佳答案

通常,静态存档是使用非 pic 对象文件创建的,它们不能放入共享库中。

不过,这条消息告诉您的是,当程序使用 Libtool 链接到您的库时,-lziparch 将被添加到链接中。因此,除非您正在为解释语言构建模块,否则您无需更改任何内容。在这种情况下,您必须将 ZipArchive 构建为共享库。此外,这在 MS Windows 等共享库 (DLL) 必须在链接时解析其所有符号的平台上不起作用。

综上所述,如果您的 ziparch 静态库是 PIC 代码,则可以在将其链接到库时使用 -whole-archive 标志。不过,这将是最不便携的解决方案。

关于build - 为什么 Libtool 不想与静态库链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11204935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com