Ubuntu中的GCC(GNU Compiler Collection)是一个强大的编译器,用于编译C、C++、Objective-C、Fortran等语言。以下是一些GCC命令的常用参数:
-c
:仅编译源文件,生成目标文件(.o文件),不进行链接。-S
:将源代码编译为汇编代码(.s文件)。-E
:仅进行预处理,不进行编译和链接。-g
:生成调试信息,以便使用调试器(如gdb)进行调试。-O
:进行优化。-O1
表示进行基本的优化,-O2
表示进行更高级的优化,-O3
表示进行最高级别的优化。-Wall
:显示所有警告信息。-Werror
:将警告视为错误。-cflags
:指定编译器的选项,通常用于指定优化级别、调试信息等。-L
:指定库搜索路径。-l
:链接指定的库。例如,-lm
表示链接数学库。-o
:指定输出的可执行文件名。如果不指定,默认输出为a.out
(在早期版本的GCC中)或a.exe
(在某些平台上)。-static
:生成静态链接的可执行文件,不依赖动态链接库。-shared
:生成动态链接的可执行文件,依赖动态链接库。-pthread
:为程序添加线程支持。-fPIC
:生成位置无关代码(Position Independent Code),适用于共享库。-fexceptions
:启用C++异常处理。-fomit-frame-pointer
:省略帧指针,减少内存占用和提高性能。-ffunction-sections
:将函数代码放入单独的段中。-fdata-sections
:将数据放入单独的段中。-rdynamic
:使动态链接器能够解析符号表中的所有符号。这些参数可以根据需要进行组合使用,以控制GCC编译器的行为。在使用GCC命令时,可以通过-h
或--help
选项查看所有可用参数及其用法。