我的G++编译选项

时间:2021-03-16 09:15:01
-Wall -Wextra -g3 -DLOCAL -Wshadow -Wpointer-arith -Wcast-qual -Waggregate-return -Winline -Wunreachable-code
  1. -Wall打开大部分(但不是所有)的编译警告
  2. -Wextra打开额外的警告(不知道有没有-Wall没有包含的,为了保险这里加上)
  3. -g3调试信息
  4. -DLOCAL定义一个LOCAL宏,用于条件编译
  5. -Wshadow当局部变量覆盖全局变量时,会警告。-Wall 并不会打开此项。
  6. -Wcast-qual对函数指针或者void *类型的指针进行算术操作时给出警告。-Wall 并不会打开此项。
  7. -Waggregate-return如果定义或调用了返回结构体或联合体的函数,编译器就发出警告。
  8. -Winline无论是声明为 inline 或者是指定了-finline-functions 选项,如果某函数不能内联,编译器都将发出警告。如果你的代码含有很多 inline 函数的话,这是很有用的选项。
  9. -Wunreachable-code如果编译器探测到永远不会执行到的代码,就给出警告。也是比较有用的选项。