Catch2 3.x版的CMake脚本

l7wslrjt  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

Catch2 v3.4.0在一个名为d:/Libraries/Catch2-3.4.0的文件夹中。
我有一个测试项目,它应该在一个名为d:/work/test_project的文件夹中使用Catch2。
我想使用CMake集成,而不是合并文件(catch_amalgamated.hppcatch_amalgamated.cpp)。
测试项目的CMakeList.txt包含以下内容(如here所述):

find_package(Catch2 3 REQUIRED)
add_executable(test_project main.cpp)
target_link_libraries(test_project PRIVATE Catch2::Catch2WithMain)

字符串
我得到的是:

CMake Error at test_project/CMakeLists.txt:2 (find_package):
  By not providing "FindCatch2.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Catch2", but
  CMake did not find one.

  Could not find a package configuration file provided by "Catch2" (requested
  version 3) with any of the following names:

    Catch2Config.cmake
    catch2-config.cmake

  Add the installation prefix of "Catch2" to CMAKE_PREFIX_PATH or set
  "Catch2_DIR" to a directory containing one of the above files.  If "Catch2"
  provides a separate development package or SDK, be sure it has been
  installed.


我试探着:

  • Catch2_DIR设置为d:/Libraries/Catch2-3.4.0d:/Libraries/Catch2-3.4.0/CMake,但错误相同。
  • Catch2_CHECK_PATHS设置为两个文件夹中的任何一个,结果相同。

我到底该如何包含这个新的Catch2 v3?

4c8rllxm

4c8rllxm1#

您在Catch2_DIRCMAKE_PREFIX_PATH中使用的目录必须是您 * 安装 * Catch 2版本的目录。您不能使用您克隆Catch 2 git repo的目录,除非该目录也是您选择安装Catch 2版本的目录。这在文档中说明。如果您想要了解构建和安装Catch 2的基本说明,请参阅文档,但是你所知道的关于使用CMake进行构建和安装的所有内容都适用-这些文档只是给那些不知道该怎么做的人的建议。

相关问题