gcc本身设置了一些编译告警/报错选项,归类如下:
- -Werror:-Werror=xxx,表示将xxx的warning变为error,例如-Werror=select, -Werror=return-type
- -Wall:激活所有的warnings
- -Wextra:激活不在-Wall所在的warning的其它warnings
- -Wshadow:激活遮蔽(如两个嵌套的for循环都用变量i做index)类型的warning,即:
- -Wshadow=global:激活任意类型的遮蔽;
- -Wshadow=local:激活local变量的遮蔽(如两个嵌套的for循环都用变量i做index);
- -Wshadow=compatible-local:激活local变量的遮蔽,考虑变量类型(如上例中的i在内外两层的for循环中是不同的类型);
这些都可以用cmake的**target_compile_options()**来指定