# CMake 错误：特性 cxx_std_98 不可用。请检查编译器是否支持 CXX_STANDARD 98。

- **ID:** `cmake/unknown-feature-cxx-std-98`
- **领域:** cmake
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 85%

## 根因

CMake 3.1 及以上版本移除了对 C++98 作为编译特性的支持，因此将 CMAKE_CXX_STANDARD 设置为 98 或在 target_compile_features 中使用 cxx_std_98 会导致错误。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| CMake 3.27 | active | — | — |
| CMake 3.28 | active | — | — |
| CMake 3.29 | active | — | — |

## 解决方案

1. ```
   set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
   ```
2. ```
   cmake -version  # check current version
# Install CMake 3.0 from https://cmake.org/files/v3.0/
   ```

## 无效尝试

- **** — 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. (90% 失败率)
- **** — The feature is hardcoded in CMake's internal compiler detection; custom definitions cannot override it. (100% 失败率)
