-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。
-Wall选项意思是编译后显示所有警告。
-W选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。
在编译一些项目的时候可以-W和-Wall选项一起使用。
-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。-Wall选项意思是编译后显示所有警告。-W选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。在编译一些项目的时候可以-W和-Wall选项一起使用。
最近项目需要使用 Ubuntu 20.04.4,查看下 编译器版本居然是 9.4.0,自然项目迁移过程中会有很多编译问题需要解决,毕竟之前的
gcc
版本都是 4.8.5的,差距很大。
使用
gcc
(g++) 遇到编译问题,首选当然是浏览器直接搜索问题关键字即可,一般都是有解决办法的,但是碰到和高版本如:
gcc
8.4、
gcc
9.4版本的问题,很多时候就不太好找的。因此就需要自己去
GCC
官网 针对具体问题具体查看了。
附 Ubuntu 下载直达链接:Ubuntu Server 20.04.4 LT
gcc
可以用' -W'开始的选项请求许多特定的
警告
. 反之, 每个特定的
警告
选项也有一个以“- wno -”开头的否定形式来
关闭
警告
; 具体选项参见:
Warning
Options - Using the GNU Compiler Collection (
GCC
)其中, 2个选项值得注意:
-w
关闭
所有
warning
, 而 -Werror 将所有
warning
视为error.前者-w
关闭
所有
warning
自然需要慎用.后者-Werror有些公司项目为了引起对
warning
的重视, 默认开启即不允许有
(https://blog.csdn.net/qq_17308321/article/details/79979514)
-fsyntax-only
检查代码中的语法错误,但除此之外不要做任何事情。
禁止所有
警告
消息。
-Werror
使所有的
警告
进入错误。
-Werror=
----------------------------------------
消除
warning
: "unused parameter xxxx"
警告
----------------------------------------
如下定义一个宏即可:
#define UNUSED(x) (void)x
UNUSED(argc);
UNUSED(argv);
------------------------------------------------------------
gcc
关
在使用一些第三方库或源码的时候,经常会遇到编译时产生
warning
s情况,这些
warning
不是我们自己的代码产生的,当然也不好去修改,但每次编译都显示一大堆与自己代码无关的
警告
也着实看着不爽,而且还有可能造成自己代码中产生的
警告
被淹没在多过的无关
警告
中,而被
忽略
掉的情况。
所以要想办法
关闭
这些第三方代码和库产生的
警告
。
关闭
特定的
warning
可以在编译时通过命令行参数的方式指定,比如
gcc