target_compile_features The compiler feature "cxx_variable_templates" is not known to CXX compiler "GNU" version 4.8.4. -- Configuring incomplete, errors occurred! See also "/home/slam-learn/projects/Catch2-devel/build/CMakeFiles/CMakeOutput.log". See also "/home/slam-learn/projects/Catch2-devel/build/CMakeFiles/CMakeError.log".
时间: 2023-07-18 18:41:40 浏览: 356
arm_linux_sqlite.rar_compiler for linux_cross compile_linux sqli
这个错误提示意味着您的 C++ 编译器(GNU 4.8.4)不支持 C++ 14 中的变量模板(cxx_variable_templates)特性,而 Catch2 源代码中使用了这个特性。因此需要升级您的 C++ 编译器或者使用不依赖该特性的 Catch2 版本。
解决方法有以下几种:
1. 升级 C++ 编译器:升级到支持 C++14 的编译器,比如 GCC 5 或以上版本,或者 Clang 3.4 或以上版本。
2. 切换 Catch2 版本:如果您不想升级编译器,可以尝试切换到不依赖变量模板特性的 Catch2 版本。您可以在 Catch2 的 GitHub 仓库中查找早期版本的发布,选择一个适合您的版本。
3. 禁用变量模板特性:如果您不想切换 Catch2 版本,可以尝试禁用变量模板特性。您可以在 Catch2 的 CMakeLists.txt 文件中添加以下行代码,禁用变量模板特性:
```
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
```
请注意,禁用变量模板特性可能会影响 Catch2 的性能和功能,因此建议您升级编译器或者切换到不依赖该特性的 Catch2 版本。
阅读全文