gpt4 book ai didi

c++ - 有没有更好的方法来组合静态库而不携带一堆不必要的代码?

转载 作者:搜寻专家 更新时间:2023-10-31 01:45:17 27 4
gpt4 key购买 nike

正如我在这里看到的 ( Combine static libraries ) 我可以使用 libtool 组合多个静态库

libtool -static -o new.a old1.a old2.a

据我所知,这会将旧库中的每个函数连接到新库中。但我真正想要的是 new.a 库中的函数,其他函数用于依赖目的。有没有办法只把new.a需要的部分从其他库中组合起来,而不带一堆不必要的代码?

最佳答案

您可以从旧库中提取那些您希望合并到新库中的目标文件。但是担心它真的没有多大意义;链接器将只链接那些必要的目标文件,这与共享库不同,在共享库中,共享库中定义的所有符号都可用于可执行文件(通常不是它全部使用它们)。

完成这项工作的老式方法是:

mkdir new
cd new
ar x ../old1.a
ar x ../old2.a
ar rv ../new.a *.o
cd ..
rm -fr new

在两次 x 操作之后,您可以清除和削减目标文件以保留您想要在 new.a 中使用的内容。

关于c++ - 有没有更好的方法来组合静态库而不携带一堆不必要的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367107/

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