我有一个在 Visual Studio 中构建的 CMake 项目。在我的 CMakeLists.txt 文件中,我有这样的声明:
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(FATAL_ERROR "Prevented in-tree build. ")
endif()
在我的 CMakeSettings.json 我有这一行:
{
"configurations":[
{
"name": "x64-Debug",
//...
"buildRoot": "{projectDir}\\out\\build\\${name}",
}
//...
]
//....
}
根据此文档 buildRoot
映射到-DCMAKE_BINARY_DIR
.
我得到了你可以在上面的 if 语句中看到的错误。
如果我打印CMAKE_BINARY_DIR
变量,它看起来不像buildRoot
,它只是项目的根。
它以前确实有效,但我在 VS 2019 的开发人员命令提示符中使用 CMake 来尝试构建项目,但现在,如果我尝试从 Visual Studio 再次构建,我会收到上述错误(in-tree build)。
知道有什么问题以及如何CMAKE_BINARY_DIR
在 CMakeSettings.json 中正确设置吗?