C++编译指定新版libstdc++库
·
程序运行时报错:
[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*
输出示例:

这样在编译的时候就不会报错了
更多推荐
所有评论(0)