c - 如何在 Linux 终端中优化 C 编译生成的可执行文件

标签 c gcc optimization

有什么方法可以减少使用诸如gcc source_file.c -o result之类的命令生成的可执行文件所使用的内存吗?我浏览了互联网,还在手册页中查找了“gcc”,我认为我应该使用与 -c-S 相关的内容。那么 gcc -c -S source_file.c -o result 是否有效? (这似乎减少了使用的空间......还有其他方法可以减少更多吗?)

谢谢, 波尔布

最佳答案

standard compiler option在类 POSIX 系统上,指示编译器进行优化的命令是 -O(大写字母 O 表示 optimize)。许多编译器允许您有选择地在 -O 之后指定优化级别。常见的优化级别包括:

  • -O0 根本没有优化
  • -O1 速度的基本优化
  • -O2 所有 -O1 以及一些高级优化
  • -O3 所有 -O2 以及通常不需要的昂贵优化
  • -Os 针对大小而不是速度进行优化(gcc、clang)
  • -Oz 进一步优化尺寸 (clang)
  • -Og 所有 -O2,除了妨碍调试 (gcc) 的优化
  • -Ofast 所有 -O3 以及一些不符合标准 C 的数值优化。请谨慎使用。 (海湾合作委员会)

关于c - 如何在 Linux 终端中优化 C 编译生成的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832162/

相关文章:

c - C 中的空终止字符串

c - 从类型 `' 分配给类型 ]'` 时不兼容的类型

c++ - "You can' t 前向声明重载 operator&"的类?

c++ - 构建 nginx 和 OpenSSL 时出错

sql - Oracle优化器会在同一SELECT中使用多个提示吗?

php - 使用 GZip 压缩输出

c++ - 构建复合对象时消除不必要的拷贝

c - 如何使用/dev/kmem?

c++ - 我如何得出哪些成员在 gdb 中处于什么偏移量?

c++ - 使用函数指针调用 C++ 函数