g++命令编译出来的文件体积过大解决方案

本文探讨了使用g++编译cpp文件导致exe文件体积过大的问题,主要原因是编译后的文件包含了符号信息。通过使用strip命令移除符号信息以及利用UPX工具进行文件压缩,可以显著降低编译后的文件大小,同时保持程序的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天在使用gcc编译器的g++编译cpp文件时,发现即使是一个很简单的代码文件编译出来的exe体积会达到3M以上。我也通过上网究其原因,来和大家分享一下解决方案。

文件过大的原因

在使用gcc编译器时编译出来的exe是带有符号信息的。符号信息是什么?简而言之就是应用程序的调试信息,专门用来作调试之用,其中储存了程序变量以及其余很多信息。但是我们编译出来exe并仅仅只是去使用它时是不需要这些符号信息的。下面可以看一个实例:

我这里有一个main.cpp文件,使用g++命令编译,生成的exe文件:

足足有2.98MB。我们使用nm命令来查看其符号信息:

nm main.exe

 结果:

可见其符号信息非常多。

1,去除符号信息

那么我们的思路很清晰了,既然平时使用exe文件不需要符号信息,那么去掉符号信息就行了。使用strip命令:

strip 文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值