这几天在使用gcc编译器的g++编译cpp文件时,发现即使是一个很简单的代码文件编译出来的exe体积会达到3M以上。我也通过上网究其原因,来和大家分享一下解决方案。
文件过大的原因
在使用gcc编译器时编译出来的exe是带有符号信息的。符号信息是什么?简而言之就是应用程序的调试信息,专门用来作调试之用,其中储存了程序变量以及其余很多信息。但是我们编译出来exe并仅仅只是去使用它时是不需要这些符号信息的。下面可以看一个实例:
我这里有一个main.cpp文件,使用g++命令编译,生成的exe文件:
足足有2.98MB。我们使用nm命令来查看其符号信息:
nm main.exe
结果:
可见其符号信息非常多。
1,去除符号信息
那么我们的思路很清晰了ÿ