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()**来指定
本文详细介绍了GCC编译器中的警告选项,包括如何使用-Werror、-Wall、-Wextra等选项来增强代码质量检查。特别关注了-Wshadow及其子选项的使用场景,帮助开发者更好地避免变量遮蔽等问题。
2062

被折叠的 条评论
为什么被折叠?



