CMake编译报错:libstdc++版本需≥5.1但已安装最新版
解决CMake+Ninja构建时libstdc++版本检测失败问题
报错日志
-- clang project is enabled -- clang-tools-extra project is enabled -- compiler-rt project is enabled -- cross-project-tests project is disabled -- libc project is disabled -- libclc project is disabled -- libcxx project is enabled -- libcxxabi project is enabled -- libunwind project is enabled -- lld project is enabled -- lldb project is disabled -- mlir project is disabled -- openmp project is disabled -- parallel-libs project is disabled -- polly project is disabled -- pstl project is disabled -- flang project is disabled -- Performing Test LLVM_LIBSTDCXX_MIN -- Performing Test LLVM_LIBSTDCXX_MIN - Failed CMake Error at cmake/modules/CheckCompilerVersion.cmake: 97 (message): libstdc++ version must be at least 5.1. Call Stack (most recent call first): cmake/config-ix.cmake:14 (include) CMakeLists.txt:684 (include) -- Configuring incomplete, errors occured!
环境信息
- 系统:最新版Pop!-OS
- 已安装libstdc6(版本12.1.0-2ubuntu1~22.04),尝试过重装libstdc6、更新重装gcc/g++/clang、清理损坏软件包,问题仍存在。
解决建议
- 指定编译器与libstdc++链接参数:CMake可能未匹配到正确的libstdc库,运行CMake时强制使用GCC工具链并明确指定链接libstdc:
cmake -G Ninja -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" ../path/to/source - 清理CMake缓存:删除构建目录下的缓存文件与目录,避免旧配置干扰检测:
rm -rf CMakeCache.txt CMakeFiles cmake -G Ninja ../path/to/source - 验证libstdc++关联路径:确认当前g版本及关联的libstdc库路径,若存在多版本冲突,临时指定正确的库路径:
# 查看g++版本 g++ --version # 查看关联的libstdc++路径 ldd $(which g++) | grep libstdc++ # 临时设置库路径 export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH - 禁用LLVM的libcxx选项:如果是LLVM相关项目,禁用libcxx强制使用libstdc++构建:
cmake -G Ninja -DLLVM_ENABLE_LIBCXX=OFF ../path/to/source
内容的提问来源于stack exchange,提问作者mxHuber
相关产品推荐
相关产品推荐

