有没有办法减少使用像gcc source_file.c -o result
这样的命令生成的可执行文件所使用的内存?我浏览了互联网并查看了“gcc”的手册页,我认为我应该使用与-c
或-S
相关的内容。那么gcc -c -S source_file.c -o result
工作吗? (这似乎减少了使用的空间......还有其他方法可以减少更多吗?)
谢谢, POLB
答案 0 :(得分:2)
指示编译器优化的POSIX类系统上的standard compiler option为-O
( o ptimize的大写字母O)。许多编译器允许您在-O
之后选择性地指定优化级别。常见的优化级别包括:
-O0
根本没有优化-O1
速度的基本优化-O2
所有-O1
加上一些高级优化-O3
所有-O2
以及通常不需要的昂贵优化-Os
优化尺寸而不是速度(gcc,clang)-Oz
针对尺寸进行更优化(铿锵)-Og
所有-O2
除了阻碍调试的优化(gcc)-Ofast
所有-O3
和一些不符合标准C的数字优化。请谨慎使用。 (GCC)答案 1 :(得分:-3)
选项-S生成汇编程序输出。 更好的选择是使用llvm并为多架构生成集合器。类似http://kripken.github.io/llvm.js/demo.html
llc
这里是示例https://idea.popcount.org/2013-07-24-ir-is-better-than-assembly/