我正在尝试通过在CMakeLists.txt中使用以下命令来设置(删除)默认的c ++编译器标志:
set(CMAKE_CXX_FLAGS, "")
set(CMAKE_CXX_FLAGS_DEBUG, "")
set(CMAKE_CXX_FLAGS_RELEASE, "")
但是当我使用cmake --build <builddir>
构建项目时,我看到仍然有标志传递给我的编译器(Visual Studio 2017)。我想删除所有默认的编译器标志,然后选择要使用的编译器标志。我该怎么做?
我尝试使用set
命令将CMAKE_CXX_FLAGS *设置为空字符串,并尝试使用cmake -H. -Bbuild -DCMAKE_CXX_FLAGS=""
,但在命令行输出中仍然看到以下内容:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\CL.exe /c /no
logo /W1 /WX- /diagnostics:classic /O2 /Oy- /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /MD /GS /fp:precise /Zc:wchar_t
/Zc:forScope /Zc:inline /Fo"hello.dir\Debug\\" /Fd"hello.dir\Debug\vc141.pdb" /Gd /TP /analyze- /FC /errorReport:queue main.cpp
这是我的CMakeLists.txt:
cmake_minimum_required(VERSION 3.4)
project(TestProject)
set(CMAKE_CXX_FLAGS "")
set(CMAKE_CXX_FLAGS_DEBUG "")
add_executable(hello main.cpp)
这是我使用的命令:
cmake -H. -Bbuild && cmake --build build
我希望在命令行上看到
cl.exe main.cpp
在我的CMakeCache.txt文件中,没有为CMAKE_CXX_FLAGS *变量分配任何值,但CMAKE_CXX_FLAGS *在我的CMakeCache.txt文件中继续为其分配了值。