cmake
config_error
ai_generated
partial
CMake 错误:特性 cxx_std_98 不可用。请检查编译器是否支持 CXX_STANDARD 98。
CMake Error: Feature cxx_std_98 is not available. Check that the compiler supports CXX_STANDARD 98.
ID: cmake/unknown-feature-cxx-std-98
85%修复率
85%置信度
1证据数
2023-06-15首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| CMake 3.27 | active | — | — | — |
| CMake 3.28 | active | — | — | — |
| CMake 3.29 | active | — | — | — |
根因分析
CMake 3.1 及以上版本移除了对 C++98 作为编译特性的支持,因此将 CMAKE_CXX_STANDARD 设置为 98 或在 target_compile_features 中使用 cxx_std_98 会导致错误。
English
CMake 3.1+ removed support for C++98 as a compile feature, so setting CMAKE_CXX_STANDARD to 98 or using cxx_std_98 in target_compile_features causes an error.
官方文档
https://cmake.org/cmake/help/latest/manual/cmake-compile-features.7.html解决方案
-
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF)
-
cmake -version # check current version # Install CMake 3.0 from https://cmake.org/files/v3.0/
无效尝试
常见但无效的做法:
-
90% 失败
CMake still validates the feature set; setting REQUIRED to OFF only makes it non-fatal but the feature is still unavailable, leading to silent build failures.
-
100% 失败
The feature is hardcoded in CMake's internal compiler detection; custom definitions cannot override it.