gpt4 book ai didi

c++ - 在 ubuntu 20.04 上安装 Catch2 #include

转载 作者:行者123 更新时间:2023-12-04 12:23:18 48 4
gpt4 key购买 nike

我正在尝试安装 Catch2在 Ubuntu 20.04 上。
来自 here 的使用说明.
这就是我所做的:

$ git clone https://github.com/catchorg/Catch2.git
$ cd Catch2
$ cmake -Bbuild -H. -DBUILD_TESTING=OFF
$ sudo cmake --build build/ --target install

比它说我一切都好: link for output .
但:
当我尝试编译示例时:// from here
主程序
#define CATCH_CONFIG_MAIN  // This tells Catch to provide a main() - only do this in one cpp file
#define CATCH_CONFIG_ENABLE_BENCHMARKING
#include <catch2/catch.hpp>


std::uint64_t Fibonacci(std::uint64_t number) {
return number < 2 ? 1 : Fibonacci(number - 1) + Fibonacci(number - 2);
}

TEST_CASE("Fibonacci") {
CHECK(Fibonacci(0) == 1);
// some more asserts..
CHECK(Fibonacci(5) == 8);
// some more asserts..

// now let's benchmark:
BENCHMARK("Fibonacci 20") {
return Fibonacci(20);
};

BENCHMARK("Fibonacci 25") {
return Fibonacci(25);
};

BENCHMARK("Fibonacci 30") {
return Fibonacci(30);
};

BENCHMARK("Fibonacci 35") {
return Fibonacci(35);
};
}

CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(Persistent-world LANGUAGES CXX)
add_executable(${PROJECT_NAME} main.cpp )
find_package(Catch2 REQUIRED)
target_link_libraries(${PROJECT_NAME} Catch2::Catch2)
它输出这样的错误: catch2/catch.hpp: 没有这样的文件或目录
提前致谢
Error

最佳答案

问题很简单:克隆 catchorg/Catch2 现在默认为你提供一个 v3 分支,它的工作方式不同。最重要的变化是它不再是单一的header,而是catch2/catch.hpp标题不再存在。
您可以在配置和安装构建之前切换到 v2 分支,或者调整您的代码以适应 v3 中的更改,starting with this documentation on v2 -> v3 migration .
要获得默认的 main,链接到 Catch2::Catch2WithMain目标。

关于c++ - 在 ubuntu 20.04 上安装 Catch2 #include <catch2/catch.hpp>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65098604/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com