gpt4 book ai didi

c++ - 将静态库链接到其他静态库

转载 作者:行者123 更新时间:2023-11-30 16:14:32 24 4
gpt4 key购买 nike

我有一小段代码依赖于许多静态库(a_1-a_n)。我想将该代码打包在静态库中并使其可供其他人使用。

我的静态库,我们称之为 X,编译得很好。

我创建了一个简单的示例程序,它使用 X 中的函数,但是当我尝试将其链接到 X 时,我收到许多关于缺少库 a_1 - a_n 中的符号的错误。

有没有一种方法可以让我创建一个新的静态库 Y,其中包含 X 以及 X 所需的所有功能(从 a_1 - a_n 中选择的位),这样我就可以只分发 Y 供人们将其程序链接到?

<小时/>

更新:

我考虑过用 ar 转储所有内容并制作一个大型库,但是,最终会包含许多不需要的符号(所有 .o 文件大约有 700 个) MB,但是,静态链接的可执行文件为 7 MB)。有没有一种好方法来只包含实际需要的内容?

<小时/>

这看起来与 How to combine several C/C++ libraries into one? 密切相关.

最佳答案

静态库不与其他静态库链接。执行此操作的唯一方法是使用库管理员/归档工具(例如 Linux 上的 ar)通过连接多个库来创建单个新的静态库。

编辑:为了响应您的更新,我知道仅选择所需符号的唯一方法是从包含它们的 .o 文件的子集中手动创建库。这很困难、耗时且容易出错。我不知道有任何工具可以帮助做到这一点(并不是说它们不存在),但制作一个工具将是一个非常有趣的项目。

关于c++ - 将静态库链接到其他静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57595532/

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