linux glibc不兼容问题解决
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
文章目录
linux glibc不兼容问题解决
前言
1.预备知识
1.1 查看glibc版本
1.2 查看GLIBCXX版本
2.示例程序
3.解决方案
3.1 普通编译运行
3.2 打包依赖动态库并修改elf(推荐)
3.2.1 打包依赖动态库
3.2.2 修改elf的interpreter和dynamic loader ("ELF interpreter")
3.3 静态编译
3.4 docker容器
3.5 升级gcc/g++版本
相关问题:
1.glibc不兼容
2. /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found
3. 跨操作系统应用程序
相关阅读:
Windows/Linux链接器加载动态库的搜索路径顺序
gcc link链接常用选项及应用
环境:
OS : deepIn 15.11/Centos 7
编译器: g++ 6.3.0/g++ 4.8.5
前言
开发环境为gcc 6.3.0,但是生产环境glibc版本为4.8.5,这种情况下该怎么运行程序呢?
本文将以一个例子来介绍如何解决这种不同版本glibc的问题。有如下几种方式:
打包依赖动态库并修改elf(推荐)
静态编译
docker容器
升级gcc/g++版本
1.预备知识
1.1 查看glibc版本
gcc 6.3.0
$ ldd --version
ldd (Debian GLIBC 2.24-11+deb9u3) 2.24
gcc 4.8.5
$ ldd --version
ldd (GNU libc) 2.17
1.2 查看GLIBCXX版本
g++ 6.3.0
$ strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
...
GLIBCXX_3.4.22
GLIBCXX_DEBUG_MESSAGE_LENGTH
g++ 4.8.5
$ strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
...
GLIBCXX_3.4.19
GLIBCXX_DEBUG_