我从事的一个项目依赖于另一个非常大的内部图书馆。
我的项目的 CMake 文件是基于库 CMake 文件生成的——它指定了编译器、编译器开关等。旧库将编译器指定为 gcc 4.3.2,而新库将编译器指定为 gcc 4.7.0
当我们迁移到新的库版本时,为我的项目生成的二进制文件增长了大约 10 倍——从 35MB 到 123MB
在 .a 文件上执行 nm,向我展示了相同的 .o 文件为库的两个版本生成了 .a 文件。
但是,在使用新库版本生成的 .a 文件中似乎多了约 30% 的符号(按 wc -l 计算)。
这种二进制大小爆炸的潜在原因是什么?我意识到可能有很多,但是我完全一无所知-任何提示都会有所帮助。