2013-04-17 31 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 .:好點,有道理:) –