在 Conda 环境下编译 C++ 程序时报错:version `GLIBCXX_3.4.30‘ not found

报错信息如下

复制代码
ERROR:/root/SVF/llvm-16.0.4.obj/bin/clang++: /opt/miniconda3/envs/py38/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /root/SVF/llvm-16.0.4.obj/bin/clang++)

根据错误信息,问题是由于 Conda 环境中的libstdc++.so.6缺少GLIBCXX_3.4.30版本,而 Clang++ 需要该版本。

  1. 确认 Conda 环境中的 GLIBCXX 版本,激活 Conda 环境并检查支持的 GLIBCXX 版本,若输出中无 GLIBCXX_3.4.30,则需升级 Conda 的 libstdc++库。
bash 复制代码
conda activate py38
strings $CONDA_PREFIX/lib/libstdc++.so.6 | grep GLIBCXX
  1. 更新 Conda 环境的libstdc++​,安装或升级libstdcxx-ng(提供新版 GLIBCXX)
bash 复制代码
conda install -c conda-forge libstdcxx-ng=12.1.0  # 确保版本≥12.1.0(支持GLIBCXX_3.4.30)
  1. 完成后重新验证版本
bash 复制代码
strings $CONDA_PREFIX/lib/libstdc++.so.6 | grep GLIBCXX