CentOS 下 GCC 常用编译选项速览
在 CentOS 环境中,GCC 的编译选项可按用途分为若干类,覆盖从预处理、编译、汇编到链接的全流程。下面按场景归纳高频选项,并给出典型用法示例,便于快速上手与排错。
一 常用选项分类与示例
| 类别 | 典型选项 | 作用与要点 |
|---|---|---|
| 基本流程 | -E, -S, -c, -o | 仅预处理/仅汇编/仅编译到目标文件/指定输出文件名 |
| 警告 | -Wall, -Wextra, -Werror, -Wpedantic | 开启常见/额外警告、将警告视为错误、更严格标准符合性 |
| 调试 | -g, -ggdb | 生成调试信息,便于 GDB 调试 |
| 优化 | -O0/-O1/-O2/-O3/-Os/-Ofast | 优化等级:默认 -O0;常用 -O2;-Os 优化体积;-Ofast 更快但可能牺牲合规 |
| 标准与语言 | -std=c99/-std=c11/-std=c++11/-std=c++17, -x language | 指定语言标准;强制指定输入文件语言类型 |
| 预处理器 | -DNAME[=VALUE], -UNAME, -I/path, -C | 定义/取消宏;添加头文件搜索路径;预处理保留注释 |
| 链接与库 | -lNAME, -L/path, -static, -shared, -fPIC, -pthread, -lm, -ldl | 链接库与搜索路径;静态/共享链接;生成位置无关代码(共享库必需);线程/数学/动态加载库 |
| 架构与 ABI | -m64/-m32, -march=…, -fno-strict-aliasing | 目标架构与位宽;放松严格别名以兼容部分代码 |
| 依赖与输出控制 | -M, -MM | 自动生成 Makefile 依赖规则(便于大型工程) |
| 以上选项在 CentOS 的 gcc/g++ 中通用,具体可用选项与默认值以实际安装的 GCC 版本为准。 |
二 典型用法示例
三 实用建议