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

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

但如果不是,我担心通过包含例如多个副本而使我的申请过多膨胀。的libc。

libsamplerate.a中究竟会包含什么内容?只是libsamperate的字节码?还是更多?

有帮助吗?

解决方案

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

其他提示

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

例如,要显示库的内容:

ar -t libsamplerate.a

从头开始创建.a文件:

ar -r tim.a *.txt

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top