gcc 编译c文件为exe 太大了,怎么变小。

gcc 编译c文件为exe 太大了,怎么变小。

随便一个写 c 的文件, main.c

#include <stdio.h>

int main(int argc, char const *argv[])
{
    printf("Hello World! \n");
    return 0;
}
gcc  -o output.exe test12.c

编译出来 exe 竟然有53k,太夸张了吧,我一个helloworld竟然这么大。

怎么瘦身呢?

0x1 使用参数降低

GCC编译器有一些选项可以帮助减小生成的可执行文件的大小。以下是一些步骤:

  1. 使用优化级别 -O2 或 -O3。这些优化级别会尝试减小代码的大小并提高执行速度。
  2. 使用 -s 选项来去除符号表信息。
  3. 使用 -flto 选项来启用链接时优化。
  4. 使用静态链接。动态链接的库可能会增加可执行文件的大小,因为它们需要包含额外的信息来找到和链接动态库。静态链接可以通过 -static 选项启用。
  5. 使用strip命令。strip命令可以从可执行文件中删除符号表和调试信息

这是一个使用这些选项的GCC命令示例:

gcc -O2 -s -flto -static -o output.exe main.c
strip output.exe

这个命令会编译 main.c 文件,并使用 -O2,-s 和 -flto 选项,然后将结果输出到 output.exe 文件。

经过瘦身后,从 55k 减低到 15k。减低了 73%。
在这里插入图片描述

0x2 使用upx压缩exe

使用UPX(Ultimate Packer for eXecutables)来压缩你的可执行文件。UPX是一个自由,便携式,可扩展的高级可执行文件包装器。它可以压缩各种不同的可执行文件格式。

以下是一个使用UPX的示例:

upx -9 output.exe

这个命令会使用最大压缩比(-9)来压缩 output.exe 文件。

请注意,使用UPX压缩的文件在运行时需要解压,这可能会稍微增加程序启动的时间。

在Windows上,你需要从UPX的官方网站下载预编译的二进制文件,并将其添加到你的系统路径中。你可以在这里下载:https://upx.github.io/

D:\>upx.exe -9 output.exe    
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2023
UPX 4.2.1       Markus Oberhumer, Laszlo Molnar & John Reiser    Nov 1st 2023

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     15360 ->      8192   53.33%    win64/pe     output.exe

Packed 1 file.

再次瘦身,exe减少到 8k。

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值