-
Notifications
You must be signed in to change notification settings - Fork 0
/
gcc.md
66 lines (56 loc) · 3.88 KB
/
gcc.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# GCC
如需了解更多细节,请参阅 <https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html>。
## 常用选项
| 编译选项 | 解释 |
| -------------- | ------------------------------------------------------------ |
| `-ansi` | 只支持 ANSI 标准的 C 语法<br>这一选项将禁止 GNU C 的某些特色,例如 `asm` 或 `typeof` 关键词 |
| `-E` | 预处理后即停止,不进行编译 |
| `-S` | 编译后即停止,不进行汇编 |
| `-c` | 预处理、编译和汇编源文件,但是不进行链接,生成 `.o` 文件 |
| `-g` | 生成调试信息。GNU 调试器可利用该信息 |
| `-v` | 显式制作 GCC 工具自身时的配置命令<br>同时显示编译器驱动程序、预处理器、编译器的版本号 |
| `-IDIRECTORY` | 指定额外的头文件搜索路径 `DIRECTORY` |
| `-LDIRECTORY` | 指定额外的库文件搜索路径 `DIRECTORY` |
| `-lLIBRARY` | 连接时搜索指定的库文件 `LIBRARY` |
| `-m486` | 针对 486 进行代码优化 |
| `-o` | FILE 生成指定的输出文件。用在生成可执行文件时 |
| `-O0` | 不进行优化处理 |
| `-O` | 或 `-O1` 优化生成代码 |
| `-O2` | 进一步优化 |
| `-O3` | 比 `-O2` 更进一步优化,包括 `inline` 函数 |
| `-shared` | 生成共享目标文件。通常用在建立共享库时 |
| `-static` | 禁止使用共享连接 |
| `-w` | 不生成任何警告信息 |
| `-Wall` | 生成所有警告信息 |
| `-DMACRO` | 以字符串 `"1"` 定义 MACRO 宏 |
| `-DMACRO=DEFN` | 以字符串 `"DEFN"` 定义 MACRO 宏 |
| `-UMACRO` | 取消对 MACRO 宏的定义 |
```{note}
每一个都有一个相应的否定形式,在 `W` 后面插入 `no-`,这将关闭警告。例如 `-Wno-unused-function`,参考 <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>
```
## 优化选项
| 编译选项 | 解释 |
| -------- | -------------------- |
| `-O1` | 最小化空间 |
| `-Op[-]` | 改善浮点数一致性 |
| `-O2` | 最大化速度 |
| `-Os` | 优选代码空间 |
| `-Oa` | 假设没有别名 |
| `-Ot` | 优选代码速度 |
| `-Ob` | 内联展开(默认 n=0) |
| `-Ow` | 假设交叉函数别名 |
| `-Od` | 禁用优化(默认值) |
| `-Ox` | 最大化选项 |
| `-Og` | 启用全局优化 |
| `-Oy[-]` | 启用框架指针省略 |
| `-Oi` | 启用内建函数 |
## 调试选项
| 编译选项 | 解释 |
| ---------- | ---------------------------------------- |
| `-g` | 只有使用 GDB 时才使用的额外调试信息 |
| `-gstabs+` | 以操作系统的本地格式 `stabs+` 产生调试信息 |
| `-gstabs` | 以操作系统的本地格式 `stabs` 产生调试信息 |
| `-gxcoff+` | 以操作系统的本地格式 `XCOFF+` 产生调试信息 |
| `-gxcoff` | 以操作系统的本地格式 `XCOFF` 产生调试信息 |
| `-gdwarf+` | 以操作系统的本地格式 `DWARF+` 产生调试信息 |
| `-gdwarf` | 以操作系统的本地格式 `DWARF` 产生调试信息 |