GCC#

如需了解更多细节,请参阅 https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html

常用选项#

编译选项

解释

-ansi

只支持 ANSI 标准的 C 语法
这一选项将禁止 GNU C 的某些特色,例如 asmtypeof 关键词

-E

预处理后即停止,不进行编译

-S

编译后即停止,不进行汇编

-c

预处理、编译和汇编源文件,但是不进行链接,生成 .o 文件

-g

生成调试信息。GNU 调试器可利用该信息

-v

显式制作 GCC 工具自身时的配置命令
同时显示编译器驱动程序、预处理器、编译器的版本号

-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 宏的定义

备注

每一个都有一个相应的否定形式,在 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 产生调试信息