如何让make在CC/GCC编译时屏蔽'redirecting incorrect #include'警告?
屏蔽GCC/CC编译时'redirecting incorrect #include'警告的特定标志
刚好碰到过一模一样的问题,我来给你捋清楚:
你看到的这个redirecting incorrect #include警告,是预处理阶段由系统头文件里的#warning指令触发的,从警告末尾的[-Wcpp]能看出来它属于GCC的-Wcpp警告组。要针对性屏蔽它,有两个层级的选项可选:
精准屏蔽单一警告(推荐,GCC 10+可用):
从GCC 10开始,这类头文件重定向的警告被单独划分到了-Winclude-redirection选项下,所以只要在编译时加上-Wno-include-redirection标志,就能只关掉这一个警告,不会影响其他预处理阶段的警告输出。关闭所有预处理警告(简单但范围广):
如果你的GCC版本比较旧,或者不需要保留其他预处理警告,可以直接用-Wno-cpp标志,它会关闭所有属于-Wcpp组的警告,自然也包括这个重定向提示。
另外要注意,这些标志需要加到你的Makefile的CFLAGS或者CXXFLAGS变量里,比如:
CFLAGS += -Wno-include-redirection
或者如果是直接调用gcc的话,就把标志加在命令行里:
gcc -Wno-include-redirection your_source.c -o your_program
补充一下:
--disable-warnings-as-errors只是让警告不会被当成错误终止编译,但还是会输出警告内容,而上面的标志是直接让这类警告不再显示,完全符合你的需求。
内容的提问来源于stack exchange,提问作者DhP
相关产品推荐
相关产品推荐

