一.背景
在新环境编译程序部署到老环境运行。
为什么不直接在老环境里面编译?因为用到了一点c++11的特性,需要较高版本的gcc进行编译;老环境默认的gcc版本太低,新版gcc的rpm包安装部署不上(glibc版本太低),源码安装高版本gcc又太麻烦。
二. 错误表现
注: server名字做过修改, 暂且叫my_server.
运行时报错,找不到GLIBC_2.14的符号:
而本机glibc的版本才2.12:
glibc官方最新版本虽然为glibc_2.23. 但是编译机gblic版本为glibc_2.17.
所以只需要查看my_server用到了哪些>2.12, <=2.17的glibc符号即可: