Примечание. Это решение решит проблему непонятных символов во время компиляции. Однако проблема в редакторе Visual Studio, не понимающем символы _DEBUG
или NDEBUG
для представления, остается проблемой.
В комментариях к вопросу этот вопрос был предложен какдублировать. Существует некоторое совпадение, но этот вопрос относится к Eclipse IDE и использует устаревшие команды CMake. Но он дает некоторые подсказки и после поиска в документации CMake позволяет решить проблему с этими изменениями на CMakeLists.txt
:
Шаг 1 - При необходимости, явно установить тип сборки CMake
В верхней части CMakeLists.txt
добавить следующее:
if (CMAKE_BUILD_TYPE STREQUAL "")
# Build type is not set eg. command was "cmake .."
message(STATUS " Diag: Build type was unspecified, set to Release")
set(CMAKE_BUILD_TYPE Release)
else ()
message(STATUS " Diag: Build type specified as '${CMAKE_BUILD_TYPE}'")
endif ()
Шаг 2 - определить «_DEBUG» и другие символы
После кода из шага 1 добавить следующее:
if (${CMAKE_BUILD_TYPE} STREQUAL Debug)
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "_DEBUG")
else ()
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "NDEBUG")
endif ()
Теперь вызовите CMake одним из следующих трех способов из некоторой папки build
. Это может быть либо из командной строки, либо как задача внутри кода Visual Studio, затем make
окончательный двоичный файл:
- cmake ..
- cmake -G 'Unix Makefiles'-DCMAKE_BUILD_TYPE = Release ..
Выпуск двоичного файла и отображение Release build
- cmake -G' Unix Makefiles '-DCMAKE_BUILD_TYPE = Debug ..
Отладка двоичного файла и отображение Debug build