我的項目warnlevel是/ w3。 我想啓用警告級別爲4的單個警告。 如「C4296'運算符':表達式始終爲false」如何在Visual Studio中啓用特定的C++警告
如何在CMake文件的cxx標誌中執行此操作?
我的項目warnlevel是/ w3。 我想啓用警告級別爲4的單個警告。 如「C4296'運算符':表達式始終爲false」如何在Visual Studio中啓用特定的C++警告
如何在CMake文件的cxx標誌中執行此操作?
只需添加到您的主CMakeLists.txt
(CMake的版本> = 2.8.12)通常
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/w34296>")
或(用於提示感謝@tambre)只是一個具體的目標
target_add_compile_options(MyTarget "$<$<CXX_COMPILER_ID:MSVC>:/w34296>")
的shwon generator expression將針對MSVC
編譯器(對於VC警告選項,請參閱link,由@Richard Critten提供)將警告級別4添加到警告級別3
在我給出的答案here的回答中可以找到更多使用Visual Studio項目中的CMake設置編譯選項的可能性。
此代碼適用於我。
#enable compiler warning C4296 in warnlevel 3
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w34296 ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w34296 ")
這非常可怕,因爲它爲您的項目中的* all *其他編譯單元設置了選項。現代CMake中不應再使用這些變量。 – tambre
從什麼意義上說,您的Visual Studio項目與CMake集成在一起?我並不知道它們可以裝在一起。 http://stackoverflow.com/q/395169/560648 http://stackoverflow.com/q/4151908/560648 –
請參閱https://msdn.microsoft.com/en-us/library/thxezb7y.aspx *「例如,/ w14326導致C4326生成爲1級警告。「* –