Разработка на Ubuntu 18.04 с CMake 3.15.3 и Visual Studio Code 1.39.2. Мой C ++ проект имеет CMakeLists.txt со следующей строкой:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
В коде C ++ определение DEBUG
можно проверить следующим образом:
#ifdef DEBUG
DebugFunction();
#else
ReleaseFunction();
#endif
Это все работает какожидается. Закомментируйте строку set(CMAKE_CXX_FLAGS_DEBUG...
и вызовите ReleaseFunction
. Раскомментируется и вызывается DebugFunction
.
Проблема в том, что редактор кода Visual Studio не понимает, действительно ли определен символ DEBUG
. Код всегда предполагает, что `` DEBUG не определен, и выдает DebugFunction
.
. Есть ли простой способ получить код Visual Studio, чтобы понять, какие символы определены, а какие нет? Предположительно, это требует, чтобы Код заглянул внутрь CMakeLists.txt
... но как?