• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

C++问题汇总

武飞扬头像
Zane_XC
帮助1

一、执行C 程序报错

学新通

1、现象

# 现象
./gtest_W: /lib64/libstdc  .so.6: version `GLIBCXX_3.4.20' not found (required by ./gtest_W)
./gtest_W: /lib64/libstdc  .so.6: version `CXXABI_1.3.9' not found (required by ./gtest_W)
./gtest_W: /lib64/libstdc  .so.6: version `GLIBCXX_3.4.29' not found (required by ./gtest_W)
./gtest_W: /lib64/libstdc  .so.6: version `GLIBCXX_3.4.26' not found (required by ./gtest_W)
./gtest_W: /lib64/libstdc  .so.6: version `GLIBCXX_3.4.21' not found (required by ./gtest_W)

2、解决方案

# 参考文档

https://www.codeleading.com/article/32913673834/

# 查看动态库
strings /usr/lib64/libstdc  .so.6 | grep CXXABI
# 发现最高版本只有1.3.7,没有1.3.9的库;说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库

CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1

# libstdc  .so.6是个软连接,是连接到libstdc  .so.6.0.19上的,而libstdc  .so.6.0.19是老版本的动态库。所以下面我们要做的就是将libstdc  .so.6连接到新版本的动态库上去。
ls -l /usr/lib64/libstdc  .so.6
lrwxrwxrwx 1 root root 19 Sep 29  2019 /usr/lib64/libstdc  .so.6 -> libstdc  .so.6.0.19

# 执行以下命令,查找编译gcc时生成的最新动态库:
find / -name "libstdc  .so.*"

# 将上面的最新目录复制到/usr/lib64/目录下:
cp /home/qtxu/anaconda3/lib/libstdc  .so.6.0.24 /usr/lib64/

# 将libstdc  .so.6连接到libstdc  .so.6.0.24上去:
cd /usr/lib64
rm -rf libstdc  .so.6
ln -s libstdc  .so.6.0.24 libstdc  .so.6

# 默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc  .so.6 | grep 'CXXABI'

# 可看到确实是连接到新的动态库1.3.11上去了。完成!

CXXABI_1.3.8
CXXABI_1.3.13
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.10

C 代码扫描方案

https://blog.csdn.net/qq_15559817/article/details/100736498

https://blog.51cto.com/u_15000162/6426232

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhighbhe
系列文章
更多 icon
同类精品
更多 icon
继续加载