我使用的是VS2012+cmake2.8.12。我的问题是 CMake 无法生成外部项目的正确路径。例如:
Project("{...}") = "external", "external.vcxproj", "..."
而 'external.vcxproj'
应该类似于 ..\path\to\external.vcxproj
以下是我如何使用ExternalProject_Add命令:
ExternalProject_Add(external SOURCE_DIR ${CMAKE_SOURCE_DIR}/../../int/external
CMAKE_ARGS ..
BINARY_DIR ${CMAKE_SOURCE_DIR}/../../int/external/build)
非常感谢任何帮助!
最佳答案
使用 ExternalProject_Add
构建 Visual Studio 项目的工作方式略有不同。整个ExternalProject模块是平台无关的并且不知道Visual Studio构建系统的特殊性。因此,仅添加 VS 项目是行不通的,因为ExternalProject 不知道如何构建它。相反,您必须指定用于构建项目的完整命令行。像这样的东西:
ExternalProject_Add(external_test
SOURCE_DIR ${PROJECT_SOURCE_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} ${PROJECT_SOURCE_DIR}/path/to/external.sln /build Release /project optional_project_within_solution
INSTALL_COMMAND "")
如您所见,情况相当困惑。如果您只想将现有的 VS 项目包含在 CMake 生成的解决方案中,请考虑使用 include_external_msproject
相反。
关于visual-studio-2012 - 使用ExternalProject_Add后缺少项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21635006/