gpt4 book ai didi

visual-c++ - 删除 cmake 上的默认标志

转载 作者:行者123 更新时间:2023-12-04 12:41:41 25 4
gpt4 key购买 nike

以下CMakeLists.txt

 SET(CMAKE_CXX_FLAGS "/DWIN32")
SET(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS})
add_executable(hello hello.cpp)

最终运行
 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /nologo /W1 /WX- /O2 /Ob2 /D WIN32 /D NDEBUG /D "CMAKE_INTDIR=\"Release\"" /D _MBCS /Gm- /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"hello.dir\Release\\" /Fd"C:/Users/monso/code/playground/cmakeworld/build/Release /hello.pdb" /Gd /TP /errorReport:queue ..\hello.cpp

带标志 /c /nologo /W1 /WX- /O2 /Ob2 /D WIN32 /D NDEBUG .

我怎样才能删除它们以放置我自己的?设置 CMAKE_CXX_FLAGS附加我放置的任何标志(例如 /w)。打印时 CMAKE_CXX_FLAGS set前后call 确实改变了它的值。

最佳答案

CMake 为每种构建类型使用不同的变量。他们被称为 CMAKE_CXX_FLAGS_<BUILDTYPE>CMAKE_C_FLAGS_<BUILDTYPE>
所以,对于 CXX,这将是

CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_MINSIZEREL

另外 ,它使用“常规”变量中的设置 CMAKE_CXX_FLAGSCMAKE_C_FLAGS
因此,为了摆脱默认值,您需要设置全局或特定变量并清除另一个(或根据需要配置它们)。

注意:如果您想在缓存中进行这些更改,则需要使用 FORCE范围。否则,他们将在本地受雇于该项目及其子项目。

关于visual-c++ - 删除 cmake 上的默认标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com