我有一個奇怪的g ++行爲,它顯示了有關無法識別的命令行選項的警告,當顯示任何其他警告時。cc1plus:無法識別的命令行選項警告任何其他警告
實施例:
struct Foo{virtual int bar() = 0;};
struct Bar:public Foo{int bar() {return 0;} };
int main(){}
與g++-5 -Wsuggest-override -Wno-c99-extensions -std=c++11 a.cpp
甚至g++-5 -Wsuggest-override -Wno-c99-extensions a.cpp
節目編制:
a.cpp:2:27: warning: ‘virtual int Bar::bar()’ can be marked override [-Wsuggest-override]
struct Bar:public Foo{int bar() {return 0;} };
^
cc1plus: warning: unrecognized command line option ‘-Wno-c99-extensions’
ADDITION:沒有警告/錯誤當我g++-5 -Wno-c99-extensions a.cpp
因此該選項編譯傳遞CMAKEs檢測信號採用CHECK_CXX_COMPILER_FLAG
這使我困擾不少,因爲我們使用Werror,但通過Wn例外o-error = ...然後,當任何(無錯誤)警告顯示在「無法識別的命令行選項」中時,它會自動退出
這是已知的/預期的嗎?如何防止?
對於downvoters:您可以添加評論爲什麼你downvoted?然後我可以改進這個問題。正如我剛纔注意到的那樣,我忘了提及國旗本身並沒有提出警告/錯誤 – Flamefire