Catch2 对 Catch::StringMaker 的未定义引用

问题描述

我正在使用来自实际 devel 分支的 Catch2,并且在尝试比较两个 vector<string_view> 时出现链接错误

问题可以重现如下:

#include <vector>
#include <string_view>
#include <catch2/catch_test_macros.hpp>

TEST_CASE("Can split string","[split]") {
  vector<string_view> splittedString = {"this is a string view"sv};
  vector<string_view> EXPECTED = {"I'm"sv,"Elvis"sv,"Dukaj"sv};
  REQUIRE(splittedString == EXPECTED);
}

我的CMakeLists.txt

find_package(Catch2 required)
# ...
target_link_libraries(${PROJECT_NAME} PRIVATE  Catch2::Catch2WithMain)

尝试构建时出现以下链接错误

Catch2/src/catch2/../catch2/catch_tostring.hpp:126: error: undefined reference to `Catch::StringMaker<std::basic_string_view<char,std::char_traits<char> >,void>::convert[abi:cxx11](std::basic_string_view<char,std::char_traits<char> >)'

我做错了什么?我错过了一些包含吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)