-Werror引入的问题适配
错误信息
在编译选项打开-Werror的情况下,编译器会将所有warning转化为error,不同于warning,error会阻碍构建。此类error格式如下:
1 | test.c:6:1: error: non-void function does not return a value [-Werror,-Wreturn-type] |
问题介绍
因为毕昇编译器和GNU编译器对于warning的处理有差异,因此可能存在切换毕昇后,新增warning并被-Werror选项转化为error,阻碍构建的情况。
解决方案
可以通过增加-Wno选项关闭对应的warning,例如上例中warning提示告警来自-Wreturn-type选项,则可添加-Wno-return-type(“W”后添加“no-”)选项关闭该告警,可以通过在源码根目录grep -Werror找到设置-Werror选项的位置,并在该处添加对应的-Wno选项。4.1.0版本起可通过打开-fGNU-warning-compatibility选项,控制所有与GNU编译器存在差异的warning不被-Werror选项升级,批量解决该问题。
父主题: 选项兼容问题