Я пытаюсь настроить учебный проект с использованием Catch2, и я решил, что это было
Лучше всего клонировать репозиторий в папку Cpp, чтобы я мог получать обновления и использовать его
для других проектов C ++. Способ установки такой, как описано здесь .
Основная структура папок:
Cpp
├───TestProject
│ ├───main.cpp
│ ├───.vscode
│ └───build
│ ├───CMakeFiles
│ └───Testing
└───Catch2
├─── ...
...
Согласно Документация Catch2 Я поместил это в свой файл 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, за исключением очень
основные команды, которые я должен был использовать на работе. Я думаю, что было бы меньше работы, чтобы просто бросить
это как заголовочный файл, как и предполагалось, но такой подход имел больше смысла для
я ...
Примечание: я прочитал этот вопрос . Однако его вопрос был связан с
Catch2 как заголовочный файл внутри проекта.
Примечание 2: желаемое поведение - собрать проект с использованием Catch2 в качестве внешнего
библиотека.
(Дополнительная информация: CMake --version - 3.13.3, с использованием CMakeTools в VS Code,
ОС Windows 10)