gpt4 book ai didi

c++ - 我可以使 clang 可执行文件多小?

转载 作者:行者123 更新时间:2023-12-01 22:56:22 27 4
gpt4 key购买 nike

我只是想看看我能把这个 C++ 代码写多小

#include <iostream>
using namespace std;

int main() {
cout << "hi";
}

使用这个 zsh 命令:

g++ test.cpp -Os -g -o main

但是我能做到的最小是 52 Kb,那么有什么办法可以让它变得更小吗?

最佳答案

将您的代码和编译器标志与 g++ 11.2 一起使用我得到了一个 35,8kB 可执行文件(不同的结果可以通过使用不同的编译器版本或目标系统来解释)。

  1. 删除 -g标志(GDB GNU 调试器或 LLDB Clang/LLVM 调试器的调试符号)使输出文件的大小减小到 16,3kB
  2. 您可以通过以下方式修改代码而不更改其功能 (16,0kB):
#include <stdio.h>

int main(){
fputs("hi", stdout);
return 0; // doesn't change the output, only here for completeness sake
}
  1. 使用 clang编译以上代码进一步将输出可执行文件的大小减小到 15,9kB

  2. 添加 -s标志(剥离调试信息):14,5kB(使用 clangg++ 11.2 的结果相同)

比较表(最佳结果以粗体表示):

<表类="s-表"><头>代码编译器旗帜大小<第>步<正文> 原创 g++ 8.5.0-Os-g38 496乙-Os16304乙 -Os -s 14 464 B g++ 11.2.0-Os-g35848乙0-Os16 320 乙1 -Os -s 14 464 Bclang 11.0.1-Os-g30736乙-Os16304乙-Os-g14552乙clang 13.0.0-Os-g29 312乙-Os16232乙-Os-s14488乙 修改 g++ 8.5.0-Os-g18552乙-Os16 000 B -Os -s 14 464 B g++ 11.2.0-Os-g18616乙-Os16 000 B2 -Os -s 14 464 Bclang 11.0.1-Os-g16 720 乙-Os15 960 乙-Os-s14528乙 clang 13.0.0-Os-g16 640 乙-Os15888乙3 -Os -s 14 464 B4

关于c++ - 我可以使 clang 可执行文件多小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73144043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com