Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 移动了库和编译器-结果是。一个文件大10倍。如何找到根本原因?_C++_Unix_Gcc_Gcc4.7 - Fatal编程技术网

C++ 移动了库和编译器-结果是。一个文件大10倍。如何找到根本原因?

C++ 移动了库和编译器-结果是。一个文件大10倍。如何找到根本原因?,c++,unix,gcc,gcc4.7,C++,Unix,Gcc,Gcc4.7,我工作的一个项目依赖于另一个非常大的内部图书馆 我的项目的CMake文件是基于库CMake文件生成的,它指定编译器、编译器开关等。旧库将编译器指定为GCC4.3.2,而新库将编译器指定为GCC4.7.0 当我们转向新的库版本时,为我的项目生成的二进制文件增长了大约10倍——从35MB增加到123MB 在.a文件上执行nm时,我发现相同的.o文件为库的两个版本生成了.a文件 然而,在使用新库版本生成的文件中,似乎有大约30%的符号(按wc-l计算) 以二进制大小出现这种爆炸的潜在原因是什么?我意识

我工作的一个项目依赖于另一个非常大的内部图书馆

我的项目的CMake文件是基于库CMake文件生成的,它指定编译器、编译器开关等。旧库将编译器指定为GCC4.3.2,而新库将编译器指定为GCC4.7.0

当我们转向新的库版本时,为我的项目生成的二进制文件增长了大约10倍——从35MB增加到123MB

在.a文件上执行nm时,我发现相同的.o文件为库的两个版本生成了.a文件

然而,在使用新库版本生成的文件中,似乎有大约30%的符号(按wc-l计算)


以二进制大小出现这种爆炸的潜在原因是什么?我意识到可能有很多,但我完全不知道——任何暗示都会有帮助

32位到64位?使用调试符号编译?顺便说一句,你的意思是
nmlibsomething.a | wc-l
不是吗?不仅仅是
wc-l libsomething.a
.32位vs 64位-不-它是在同一个操作系统上编译的-无论如何都不会导致10倍的放大。是的,它是nm-libsomething.a | wc-l你如何检查调试符号?啊,它是nm-a。不,这似乎没有带来重大的变化。。。