[英]Catch2 compile error (no such file or directory)
我已經使用 Catch2 成功測試了,但是這次出現了問題。 我將 Catch2 子模塊推送到我的項目(這不是 -v2.x 分支)並將“ ../Catch2/src/catch2/catch_all.hpp ”包含到我的測試文件中。 問題是在 catch_all.hpp 中找不到所有包含的.hpp文件(如<catch2/benchmark/catch_benchmark_all.hpp> 、 <catch2/catch_approx.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"
測試.cpp:
#include"Catch2/src/catch2/catch_all.hpp"
TEST_CASE("BasicTest_1", "FirstTest") {
REQUIRE(1 == 1);
}
main.cpp現在只是一個簡單的 helloworld。
TEST_CASE 也不起作用,它說“C++ 需要所有聲明的類型說明符”。
您將test_main.cpp
和test.cpp
在mainApp
中。
這意味着mainApp
中的文件嘗試#include"Catch2/src/catch2/catch_all.hpp"
而不鏈接到 Catch2 庫和包含。
從mainApp
源中刪除測試文件,然后重試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.