Я пытаюсь установить (удалить) флаги компиляторов c ++ по умолчанию, используя следующие команды в моем CMakeLists.txt:
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.