Catch2 编译错误(没有那个文件或目录)

Catch2 compile error (no such file or directory)

我已经使用Catch2测试成功了,但是这次出现了问题。我正在将 Catch2 子模块推送到我的项目(这不是 -v2.x 分支)并将“../Catch2/src/catch2/catch_all.hpp”包含到我的测试文件中。问题是在 catch_all.hpp 中所有包含的 .hpp 文件(如 , 等等)没有找到。我检查了路径,但它们似乎没问题。有什么想法吗?
这是我的代码示例。

我正在使用命令添加一个 Catch2 子模块

git 子模块添加 https://github.com/catchorg/Catch2.git

CMakeFile.txt:

cmake_minimum_required(VERSION 3.20)
project(proj)

set(CMAKE_CXX_STANDARD 17)

set (sources
        ./main.cpp
        ./test_main.cpp
        ./test.cpp)

add_executable(mainApp ${sources})
target_compile_options(mainApp PRIVATE -Wall -pedantic -std=c++17)
target_link_libraries(mainApp)

set (tests
        ./test_main.cpp
        ./test.cpp)

add_subdirectory(Catch2)
add_executable(runTests ${tests})
target_compile_options(mainApp PRIVATE -g)
target_link_libraries(runTests PRIVATE Catch2::Catch2WithMain)

test_main.cpp:

#define CATCH_CONFIG_MAIN
#include"Catch2/src/catch2/catch_all.hpp"

test.cpp:

#include"Catch2/src/catch2/catch_all.hpp"

TEST_CASE("BasicTest_1", "FirstTest") {
    REQUIRE(1 == 1);
}

main.cpp目前只是一个简单的地狱世界。

TEST_CASE 也不起作用,它说“C++ 需要所有声明的类型说明符”。

您在 mainApp 中包含 test_main.cpptest.cpp

这意味着 mainApp 中的文件尝试 #include"Catch2/src/catch2/catch_all.hpp" 而不链接到 Catch2 库并包含。

mainApp 源中删除测试文件,然后重试。