首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Catch2编译错误(没有这样的文件或目录)

Catch2编译错误(没有这样的文件或目录)
EN

Stack Overflow用户
提问于 2021-11-26 10:14:52
回答 1查看 942关注 0票数 2

我已经成功地使用了Catch2进行测试,但这一次出现了问题。我将Catch2子模块推送给我的项目(这不是-v2.x分支),并将“./catch 2/src/ and 2/ not _all.hpp”包含到我的测试文件中。问题是,在catch_all.hpp中没有找到所有包含的.hpp文件(如<.hpp 2/benchmark/catch_benchmark_all.hpp>、<.hpp 2/catch_Apx.hpp>等等)。我检查过路径,但它们看起来很好。有什么好主意吗?

下面是我的代码示例。

我正在添加一个带有命令的Catch2子模块

git子模块添加

CMakeFile.txt:

代码语言:javascript
复制
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:

代码语言:javascript
复制
#define CATCH_CONFIG_MAIN
#include"Catch2/src/catch2/catch_all.hpp"

test.cpp:

代码语言:javascript
复制
#include"Catch2/src/catch2/catch_all.hpp"

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

main.cpp现在只是一个简单的helloworld。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-26 12:04:48

您包括test_main.cpptest.cppmainApp中。

这意味着mainApp中的文件在不链接到Catch2库的情况下尝试使用Catch2,并且包括。

mainApp源删除测试文件,然后再试一次。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70122761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档