c++ - 为什么 .so 文件总是小于 .a 文件?(来源相同。)

标签 c++ shared-libraries static-libraries

我在项目中使用.a文件,当我使用项目中的源文件和.a文件生成.so文件时,发现生成的.so文件比.a文件小,

这是什么原因?

最佳答案

链接阶段(生成共享对象文件)将删除未使用的函数等并执行其他压缩。

编译阶段(生成.a)不会。

关于c++ - 为什么 .so 文件总是小于 .a 文件?(来源相同。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39620697/

相关文章:

c++ - 在 Eclipse 中找不到用于连接 MySQL 的 C++ 代码的库

c++ - Borland 断言在 local_unwind() 中失败

c++ - 带多个操作数的 unsigned long long 加法

c++ - 为什么在这个例子中没有应用 SFINAE?

c++ - 在 Eclipse 中的 C++ 中链接 .lib 并在 Windows 中使用 .dll

c++ - 使用包含另一个静态库的静态库时出现 LNK4006、LNK4221 警告

c++ - 如何在 Mac/OS X 上的 C++ 中包含 llvm/IR/Module.h?

c++ - 如何测试共享对象/共享库是否已正确编译?

c++ - 我在 so 文件上构建时缺少哪个编译器标志?

c++ - 链接到项目找不到头文件