【发布时间】:2019-01-20 19:00:08
【问题描述】:
我正在尝试使用 Catch2 设置一个学习项目,但我认为它是 最好将存储库克隆到 Cpp 文件夹中,这样我就可以获得更新并使用它 对于其他 C++ 项目。安装方法如here所述。
基本的文件夹结构是:
Cpp
├───TestProject
│ ├───main.cpp
│ ├───.vscode
│ └───build
│ ├───CMakeFiles
│ └───Testing
└───Catch2
├─── ...
...
根据Catch2 documentation,我把它放在我的 CMake 文件中:
find_package(Catch2 REQUIRED)
target_link_libraries(tests Catch2::Catch2)
但是,当我尝试在 VS Code 中配置项目时,我收到以下错误消息:
[cmake] CMake Error at CMakeLists.txt:5 (target_link_libraries):
[cmake] Cannot specify link libraries for target "tests" which is not built by this
[cmake] project.
main.cpp 只是一个 Hello World 文件,完整的 CMakeLists.txt 文件内容为:
cmake_minimum_required(VERSION 3.0.0)
project(TestProject VERSION 0.1.0)
find_package(Catch2 REQUIRED)
target_link_libraries(tests Catch2::Catch2)
enable_testing()
add_library(TestProject TestProject.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
我不确定为什么会发生这种情况。我是 CMake 的新手,非常节省 我在工作中必须使用的基本命令。我想只是放弃会少一些工作 它像它的意图一样作为头文件,但这种方法更有意义 我……
注意:我已阅读this SO question。然而他的问题与 Catch2 作为项目内的头文件。
注意 2:期望的行为是使用 Catch2 作为外部构建项目 图书馆。
(补充信息:CMake --version 为 3.13.3,在 VS Code 中使用 CMakeTools, 操作系统是 Windows 10)
【问题讨论】: