繁体   English   中英

GCC编译的静态库包含什么?

[英]What does a GCC compiled static library contain?

我的应用程序链接libsamplerate.a。 我这样做是为了让分发最终二进制文件更容易。

我担心.a文件中的代码可能依赖于我还需要分发的其他一些库。

但是,如果不是,我担心我通过包含例如多个副本而过多地膨胀我的应用程序。 libc中。

libsamplerate.a里面究竟是什么? 只是libsamperate的字节码? 或者更多?

.a文件基本上只是一组.o文件。 您可以使用ar工具演示这一点。

例如,要显示库的内容:

ar -t libsamplerate.a

要从头创建.a文件:

ar -r tim.a *.txt

静态库只是目标文件的集合。 当您针对静态库编译程序时,程序使用的函数的目标代码将从库中复制到可执行文件中。 链接静态库不会导致该库外的任何函数包含在您的代码中。

只是libsamplerate的目标代码。 静态链接单个库并不会使所有库静态链接; 那会很糟糕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM