我正在使用 googlegtest 进行测试,但在编译时出现以下错误。
/gtest-printers.h:389:55: error: no member named 'u8string' in namespace 'std' GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char8_t, ::std::u8string);
/home/googletest/googletest/include/gtest/gtest-printers.h:379:40: note: expanded from macro 'GTEST_IMPL_FORMAT_C_STRING_AS_STRING_' class FormatForComparison<CharType*, OtherStringType> {
/home/googletest/googletest/include/gtest/gtest-printers.h:390:61: error: no member named 'u8string' in namespace 'std' GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char8_t, ::std::u8string);
/home/googletest/googletest/include/gtest/gtest-printers.h:379:40: note: expanded from macro 'GTEST_IMPL_FORMAT_C_STRING_AS_STRING_' class FormatForComparison<CharType*, OtherStringType> {
产生了 2 个错误。`
这是一个宏的参数。
编译器版本:Clang++ 11.1.0
在 googletest 中编译可以工作,但是当作为头文件包含时,编译失败。不能找出错误的根本原因吗?
你能帮忙解释一下为什么链接会发生在 std 上吗?
make VERBOSE=1
输出: