📌  相关文章
📜  找不到版本“GLIBCXX_3.4.22” (1)

📅  最后修改于: 2023-12-03 15:39:44.350000             🧑  作者: Mango

找不到版本“GLIBCXX_3.4.22”

当你在运行一个程序时,可能会遇到以下错误信息:

./program: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.22' not found

这说明你的系统缺少所需的 C++ 库版本(GLIBCXX_3.4.22)。这可能会发生在以下情况下:

  • 你的系统缺少该版本的 C++ 库。
  • 你的程序是在另一个系统上编译的,该系统上有 GLIBCXX_3.4.22,而你的系统上没有。
解决方案
  1. 升级 GCC

如果你的系统上已经安装了 GCC,则可以尝试升级 GCC 的版本,以便有该版本的 C++ 库。

  1. 安装 libstdc++

如果你的系统上没有 GLIBCXX_3.4.22,那么你可以尝试从源代码安装 libstdc++ 库。

wget ftp://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.gz
tar zxvf gcc-10.1.0.tar.gz
cd gcc-10.1.0/libstdc++
./configure --prefix=/usr/local/libstdc++-10.1.0
make && make install

这将在 /usr/local/libstdc++-10.1.0 目录下安装 libstdc++ 库。

  1. 使用 LD_PRELOAD

如果你无法在系统中升级 GCC 或安装 libstdc++ 库,你可以尝试使用 LD_PRELOAD 命令来加载所需的 C++ 库。

LD_PRELOAD="/path/to/libstdc++.so.6:/path/to/libgcc_s.so.1" ./program

这将在运行 ./program 时强制加载所需的 C++ 库。

结论

无论哪种解决方案,都应该能够解决找不到版本“GLIBCXX_3.4.22”的问题。如果你还是遇到问题,建议检查你的程序是否需要其他库,并确保这些库已经正确地安装在你的系统中。