程序运行时报错:

[root@localhost my_quote_server]# /usr/local/gcc-11.2.0/bin/g++ -o main main.cpp -std=c++17 -lpthread
[root@localhost my_quote_server]# ./main
./main: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./main)
./main: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by ./main)
./main: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./main)
./main: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./main)
./main: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./main)
./main: /lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by ./main)
./main: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./main)

说明出现了标准库不兼容的问题,系统仍然在使用旧版的libstdc++.so.6

解决方法是A[确认新库路径]->B[设置运行环境]

操作方法是:

1.确认新库路径

找到GCC 11.2.0的库位置,通常在安装目录下的lib64/或lib/:

  ls -l /usr/local/gcc-11.2.0/lib64/libstdc++.so*

输出示例:确保存在新版库

2.正确创建软链接

删除错误的链接

sudo rm -f /usr/lib64/libstdc++.so.6

创建正确指向的软链接(使用绝对路径)

sudo ln -s /usr/local/gcc-11.2.0/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

验证链接状态

ls -l /usr/lib64/libstdc++.so*

输出示例:

这样在编译的时候就不会报错了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐