不删该任何文件解决 “/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found “
来源:互联网 发布:权限管理的软件 编辑:程序博客网 时间:2024/05/20 10:20
当我们运行某一个用C系列语言编译而成的程序的时候,可能会接收到这个错误——这个错误的意思是,没有找到GLIBC版本是3.4.14的相应C++标准库。
问题起源:首先,我们需要清楚,一个程序从被加载之后,需要进行动态链接,而动态链接,需要对应版本的glibc库。但是我们的可执行文件需要哪个版本的glibc库呢?
这个版本问题,已经存在于我们的可执行文件ELF格式中。我们可以用命令这样查看。
[22:10huangyk@leetcode]$>strings numDistinct | grep GLIB
GLIBC_2.2.5
GLIBCXX_3.4.5
GLIBCXX_3.4.14
GLIBCXX_3.4
好了,我们看到了ELF文件加载需要的GLIB库版本。这些版本信息是什么时候被加进去的呢?
答案:是在使用gcc编译程序的时候被加进去的。也就是说,如果两个平台的GLIBC库版本不同,同时GCC版本不同,那么它们的二进制文件是不能通用的。
问题:到什么地方去找安装在本地的GLIBC库呢?又如何寻找对应版本呢?
答案:默认的动态链接库,存放的路径是/usr/lib64/libstdc++.so.6。但是,如果我们自己编译了GCC,对应的libc和libc++的库文件位置就会发生变化。假如我们的安装路径是 /usr/local/gcc4.8.3, 那么 对应的库文件位置是/usr/local/gcc4.8.3/lib:/usr/local/gcc4.8.3/lib64.
问题:为什么我已经安装了对应的GLIBC库,但是仍然出现上述错误呢?
答案:虽然我们已经安装了对应的库,但是连接器不能顺利找到新库所在的位置。还会接着到原来的目录/usr/lib64/libstdc++.so.6寻找对应的文件。所以, 我们需要借助环境变量LD_LIBRARY_PATH来指明动态链接库对应的位置。
方法1,
http://blog.csdn.net/xiaolong2w/article/details/23915171
linux strings 命令——ELF文件格式与“链接和装载”
http://blog.csdn.net/trochiluses/article/details/29425337
方法2:
利用update-alternative 改变lidstc++.so.6 链接对象,在默认情况下libstdc++.so.6 软连接到urs/lib(或lib64)/libstdc++.so.6.0.13 ,而自行安装的更高版本的gcc 往往在/usr/local/lib(或lib64)下,通常处理是删除原有的libstdc++.so.6->libstdc++.so.6.0.13 ,新建libstdc++.so.6->/usr/local/lib64/libstdc++.so.6.0.17,这种方法血腥味太重,用update-alternative 改变lidstc++.so.6 链接对象,就显得和谐多了,步骤如下:
update-alternatives --install /usr/lib64/libstdc++.so.6 libstdc++.so.6 /usr/local/lib64/libstdc++.so.6 40
用update-alternatives --config libstdc++.so.6 选择你想要的软 链接
文章地址:http://blog.csdn.net/tlm414/article/details/54914916
- 不删该任何文件解决 “/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found “
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
- 解决类似/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found错误
- 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- 解决类似/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found错误
- 如何解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的报错
- gcc连接文件error: /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.X.XX‘ not found
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found 解决方法
- 解决VTune错误.../lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ...)
- tensorflow 1.0安装过程中出现/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found问题的解决
- 【caffe编译踩坑】解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
- Unity的AnimationCurve
- HTML 内容隐藏显示以及display和visibility的对比
- JS数组的常用方法总结
- 学习Siki学堂C#初级教程、中级教程过程中的笔记和最后完成的自定义列表MyList
- 草根程序员转型做项目管理走过的点点滴滴之"经验总结"
- 不删该任何文件解决 “/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found “
- 拉格朗日插值——基于scipy实现
- C++异常与继承
- Piggy-Bank [dp][完全背包]
- hdu3853 LOOPS 【概率DP+期望问题】
- JS字符串的一些常用方法
- 简单的单向链表的创建(总结)
- 第一次写博客,记录一下今天遇到的一个错误
- 递归之算24