【发布时间】:2019-11-05 23:34:52
【问题描述】:
使用 CMake 3.15.3 和 Visual Studio Code 1.39.2 在 Ubuntu 18.04 上进行开发。我的 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 Code 编辑器不理解 DEBUG 符号是否实际定义。代码始终假定 ``DEBUG 未定义并显示为灰色 DebugFunction。
是否有一种简单的方法可以让 Visual Studio Code 了解哪些符号已定义,哪些未定义?大概这需要让代码查看内部CMakeLists.txt...但是如何?
【问题讨论】:
标签: c++ visual-studio-code cmake