在大型的项目开发中,由于开发代码量过多,开发人数过多且风格各有特色,导致代码质量难于把控,除了编码上面统一的一些规范外,在qt项目中我们可以使用如下参数设置对代码的编译进行初步过滤,把不规范或者无用的代码使用编译报错的方式过滤出来。
QMAKE_CXXFLAGS += -Wall
QMAKE_CXXFLAGS += -Werror=return-type #函数无返回值
QMAKE_CXXFLAGS += -Werror=return-local-addr #返回局部变量地址
# QMAKE_CXXFLAGS += -Werror=missing-field-initializers #缺少初始值设定项
QMAKE_CXXFLAGS += -Werror=maybe-uninitialized #变量可能没有被初始化
# QMAKE_CXXFLAGS += -Werror=delete-non-virtual-dtor #
# QMAKE_CXXFLAGS += -Werror=unused-but-set-variable #设置了但未使用的变量
QMAKE_CXXFLAGS += -Werror=parentheses #括号不匹配
QMAKE_CXXFLAGS += -Werror=pointer-arith #指针用在了算术运算
# QMAKE_CXXFLAGS += -Werror=reorder #警告构造函数的顺序不会被使用
QMAKE_CXXFLAGS += -Werror=format-extra-args #格式不对
# QMAKE_CXXFLAGS += -Werror=unused-variable #未使用的变量
从上面注释来看,其实就是给编译器传参数,从而控制编译的过程,一定程度上实现编译器自定义控制。
与其说这是添加编译报错选项,反过来看,不如说这是报错忽略选项。