在编译Linux内核时,若是代码有不符合 C99 规范的情况,会出现warning,但是通常warning不会影响编译完成,但是在此时却会中断编译,如下图所示:
此时,有两种解决方法:
1. 解决问题:修改代码使代码符合C99的规范,消除warning。
2. 解决提出问题的人(代码):修改warning中断编译的文件,使得warning不会中断编译。
第一种方法不用多说,直接根据warning改就好了,第二种,按照如下步骤修改就好了
1. 在kernel下面找到如下文件:gcc-wrapper.py,路径如下:
scripts\gcc-wrapper.py
2. 在文件中找到报错的打印,方法如下:
windows 环境,文件编辑器中(Notepad Notepad++ uEditor 等),ctrl + F ,然后输入:error, forbidden warning ,回车找到函数:interpret_warning
Linux 环境,在vim中输入:/error, forbidden warning ,回车找到函数:interpret_warning
3. 找到函数调用,删除调用:
按照2条的要求,找到interpret_warning的调用,发现调用在函数:run_gcc中,通常情况下,没有修改过的gcc-wrapper.py文件的92行,在其前面加一个"#",注释掉这一行,就可以了。
版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/fixed-error-forbidden-warning.html