可以参考一下这里:odt笔记_20221007(gnu编译套件.odt)
宏: -D[MACRO] 定义宏 -D[MACRO=DEFN] 定义宏 -U[MACRO] 取消定义一个宏 编译: -I[path] 添加头文件路径 -L[path] 添加链接路径 -l[lib] 添加链接库 -E 只进行预编译 -S 编译到汇编代码 -c 编译到目标代码 -g 生成调试信息 -o 指定输出文件 -fPIC 生成位置独立代码,这是动态库的必需选项 -static 指定使用静态链接(对所有链接库生效) -shared 生成动态链接库 --std=[c++11] 指定C++语言标准 警告: -w 关闭所有警告 -Wall 生成所有警告 -W[address] 开启某一个警告,[]里面有很多可以填的选项,address表示使用可疑的内存地址时给出警告 -Werror 把所有的警告视为错误 -Werror=[switch] 将某一个警告视为错误,[]里面有很多可以填的选项 -Wno-error=[switch] 将某一个警告不视为错误,[]里面有很多可以填的选项 -Wextra 打开额外的警告(all里面没有包括的) -pedantic 以ANSI/ISO C标准列出的所有警告 优化: -O0 不进行优化 -O 优化等级1 -O1 优化等级1 -O2 优化等级2 -O3 优化等级3(最大) -fno-elide-constructors 关闭编译器的返回值优化