2013-04-17 27 views
5

我已经设置了-Wno-unused-parameter(以及其他一些)编译器标志,它确实传递给编译器,但我仍然收到此警告:无法在Mac OS X上抑制特定的叮叮警告

clang++ -c -pipe -Wno-self-assign -Wno-unused-parameter -Wno-unused-variable -g -gdwarf-2 -arch x86_64 -fPIC -Wall -W F/Library/Frameworks -o ../build/cobject.o src/cobject.cpp             ^
src/cobject.cpp:102:68: warning: unused parameter 'client' [-Wunused-parameter] 
void cobject::processNetMsg(int type, CNetMsg& msg, CClient& client) 
                   ^

是不是因为-Wall也被指定? -Wno-...不应该优先?如何告诉clang显示除一些之外的所有警告?

+1

我建议(但不是100%肯定)你应该把“-Wall -Wno -...”放在那个顺序上,而不是把某些东西关掉(这可能是默认关闭的),然后打开“一切”。 –

回答

9

警告参数就像切换一样。当你这样做时-Wno-unused-parameter您关闭了该警告,但是稍后在命令行上执行-Wall时,会将其重新打开。争论的顺序很重要。

所以要解决它,请在打开之后放置不合格参数

+0

谢谢!我认为'clang'比这更聪明(就处理命令行参数而言):) –

+2

@VioletGiraffe:麻烦是*更聪明*是主观的。它的行为像切换的原因是,这种方式可以*重写*从“更多全局”级别继承的参数。所以铿锵聪明,只是不是你认为它的方式:) –

+0

@MatthieuM .:好点,有道理:) –