2023年7月29日,周六晚上
目录
一些常用和重要的选项:
- -c: 仅编译,不链接。将编译结果存为目标文件。
- -o <file>: 将链接结果存为可执行文件 file。
- -g: 生成调试信息,便于使用 GDB 进行源码级调试。
- -O<level>: 设置优化级别,<level> 可以为 0-3,数字越大优化程度越高。
- -Wall: 开启所有警告。建议总是使用该选项,以避免一些问题。
- -std=c99 或 -std=c11: 设置 C 语言标准。默认为 GNU89 标准。
- -std=c++98 或 -std=c++11 或 -std=c++14: 设置 C++ 语言标准。默认为 GNU++98 标准。
- -I<dir>: 添加 <dir> 到头文件搜索路径中。
- -L<dir>: 添加 <dir> 到库文件搜索路径中。
- -l<lib>: 链接 <lib> 库。如 -lstdc++ 链接 C++ 标准库。
- -pthread: 链接 POSIX 线程库,以启用多线程支持。
- -fexceptions: 启用 C++ 异常处理。
- -m32 或 -m64: 生成 32 位或 64 位代码。
- -E: 仅预处理,不编译。
- -S: 编译生成汇编文件,不汇编。
- -shared: 生成动态链接库。
- -static: 链接静态库以及所有依赖的静态库。
- -fPIC: 位置无关代码,用于生成共享库。
- -rdynamic: 导出所有符号,用于生成可调试的动态链接库或可执行文件。
- -nostdlib: 不链接标准库,如 libc。
- -nostartfiles: 不链接启动文件,如 crt1.o。
- -fno-exceptions: 禁用 C++ 异常处理。
- -fno-rtti: 禁用 C++ RTTI。
除此之外,GCC 还支持许多其他编译选项。GCC 的选项非常丰富,覆盖了代码生成、优化、调试、语言标准、链接等方方面面。
查看所有选项
如果想查看 GCC 支持的全部选项,可以:
- 去看GCC的官方文档:GCC online documentation- GNU Project
- 在Linux系统中输入"man gcc"命令
理解和熟悉 GCC 的常用选项,可以大大提高使用 GCC 的效率。除了上面列出的选项外,对于其他不太常用的选项,可以在需要时查阅 GCC 手册。