1、前言
通常为了提交的代码没有缺陷,我们一般将编译时产生的警告信息,按照错误输出,不允许编译通过。
2、gcc的警告和错误开关
2.1、gcc警告开关
使用gcc编译c文件的时候,可以传入“-Wall”参数,使能所有警告。
gcc -Wall xxx.cc
-W表示警告,all表示所有。
2.2、gcc警告做为错误输出
使用gcc编译c文件的时候,可以传入“-Werror”,将警告作为错误输出。这样当有警告的时候,会输出错误,进而让编译失败。
gcc -Wall -Werror xxx.c
-W表示警告,error表示将警告当中错误输出。“-Werror”起作用的前提是,要使能所有的警告,否则,警告都没有使能就无从谈起将警告作为错误了。
3、cmake工程中,指定编译参数,让gcc警告作为错误输出的目的。
3.1、cmake变量CMAKE_C_FLAGS、CMAKE_CXX_FLAGS
cmake中,有c和c++两个编译参数,用来相gcc传递编译参数,要实现上面的目的,就可以通过设置这两个参数实现。
3.2、设置编译参数
在CMakeLists.txt中设置如下:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
这样设置完后,再次执行make编译c项目时,就会将编译警告当作编译错误输出了。