Catch2 を使用して学習プロジェクトをセットアップしようとしていますが、更新を取得して他の C++ プロジェクトに使用できるように、リポジトリを Cpp フォルダーに複製するのが最善であると判断しました。取り付け方法はこちらのとおりです。
基本的なフォルダ構造は次のとおりです。
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 の完全な初心者です。意図したようにヘッダーファイルとしてドロップする方が簡単だと思いますが、このアプローチは私にとってより理にかなっています...
注: 私はこの SO の質問を読みました。しかし、彼の質問は、プロジェクト内のヘッダー ファイルとしての Catch2 に関するものでした。
注 2: 望ましい動作は、Catch2 を外部ライブラリとして使用してプロジェクトをビルドすることです。
(追加情報: CMake --version は 3.13.3、VS Code で CMakeTools を使用、OS は Windows 10)