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

其他格式: JSON · Markdown 中文 · English
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.

generic

官方文档

https://cmake.org/cmake/help/latest/manual/cmake-compile-features.7.html

解决方案

  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/

无效尝试

常见但无效的做法:

  1. 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.

  2. 100% 失败

    The feature is hardcoded in CMake's internal compiler detection; custom definitions cannot override it.