使用仅语法参数切换警告
Toggle warnings with fsyntax-only parameter
我有一个关于g++和gcc之间编译的问题。
如果我写这段代码:
int main(int args, char* argv[]){
return 0;
}
并编译为:g++ -fsyntax-only -Wall -Wextra -Werror
无论文件具有.c
或.cpp
扩展名,它都不会抱怨未使用的参数(args
和argv
(。
-Wunused
选项仅在我编译具有.c
扩展名的文件并gcc
时才有效。
所以我的问题是:是否可以在所有其他情况下启用带有fsyntax-only
参数的警告?
提前感谢您的任何回复
不,它不是,-fsyntax-only只检查语法。
请求或禁止显示警告的选项:
-fsyntax-only
检查代码的语法 错误,但除此之外不要做任何事情。
这种异常似乎是 g++ 编译器的错误。OP的G++ 5.4 证实了观察结果,但 G++ 6.3 给出了预期警告:
$ g++-6 -fsyntax-only -Wall -Wextra -Werror test.cpp
test.cpp: In function ‘int main(int, char**)’:
test.cpp:1:14: error: unused parameter ‘args’ [-Werror=unused-parameter]
int main(int args, char* argv[]){
^~~~
test.cpp:1:31: error: unused parameter ‘argv’ [-Werror=unused-parameter]
int main(int args, char* argv[]){
^
cc1plus: all warnings being treated as errors
相关文章:
- 警告:忽略模板参数上的属性..在 std::unique_ptr (-wignore 属性)的声明中
- 将不同类型的模板参数包提取到双精度向量中会产生警告
- OPENCL 警告:不兼容的指针类型将'float __global[16]'传递给类型为 '__global float4 的参数 *
- "(void) cast"与功能有什么区别 "__attributes__"来沉默未使用的参数警告?
- 宏函数调用缺少参数警告,即使给定了参数
- 警告 C4267"参数":从"size_t"转换为"DWORD&quo
- C++程序给出了太多参数警告
- 如何使用布尔参数为按位运算符启用C++警告
- 编译器在 const ref 类型参数上使用临时对象时是否应该警告不安全的行为?
- 如何警告 C 中 void 指针上的参数不兼容的类型
- q致命参数:将 QString 转换为常量字符* 会导致警告"format string is not a string literal"
- 当没有显式关键字与单参数构造函数一起使用时,编译器可以发出警告
- 由于非类型模板参数而具有零大小数组的类模板:如何防止警告
- 为什么在相同大小的功能参数中隐式转换不会发出警告
- 可变参数宏警告
- 警告:用两个参数构造函数返回对象时,表达结果未使用
- 在基于模板参数的模板实例化时发出警告
- clang:警告:编译期间未使用的参数:"-stdlib=libc++"
- 警告:格式"%d"需要类型为"int*"的参数,但参数5的类型为"in
- GCC警告的含义:忽略模板参数上的属性(-Wignored属性)