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

您所在的位置:网站首页 微软资讯和兴趣太大了怎么变小 gcc 编译c文件为exe 太大了,怎么变小。

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

2024-07-12 22:08| 来源: 网络整理| 查看: 265

gcc 编译c文件为exe 太大了,怎么变小。 0x1 使用参数降低0x2 使用upx压缩exe

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

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

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

怎么瘦身呢?

0x1 使用参数降低

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

使用优化级别 -O2 或 -O3。这些优化级别会尝试减小代码的大小并提高执行速度。使用 -s 选项来去除符号表信息。使用 -flto 选项来启用链接时优化。使用静态链接。动态链接的库可能会增加可执行文件的大小,因为它们需要包含额外的信息来找到和链接动态库。静态链接可以通过 -static 选项启用。使用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。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3