轉自:http://blog.sina.com.cn/s/blog_6c5a47d30102wfw9.htmlphp
undefined reference to `memcpy@GLIBC_2.14'
![此博文包含圖片](http://static.javashuo.com/static/loading.gif)
緣由html
程序要調用XXX.so,而XXX.so的編譯環境比當前系統版本要高。編程
查看現有系統的GLIBC庫版本: strings /lib64/libc.so.6 |grep GLIBCui
證明了確實沒有GLIBC_2.14spa
解決辦法:安裝glibc.net
從http://www.gnu.org/software/libc/ 下載源代碼。我下載的版本是2.14,連接地址是http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 【儘可能和調用庫版本一致】htm
[root@localhost ~]# tar xvf glibc-2.14.tar.gz ///< 解壓
[root@localhost ~]# cd glibc-2.14 ///< 到解壓目錄下
[root@localhost glibc-2.14]# mkdir build ///< 新建build目錄
[root@localhost glibc-2.14]# cd ./build ///< 到build目錄下
[root@localhost build]# ../configure --prefix=/opt/glibc-2.14 ///< 配置安裝路徑,將安裝在/opt/glibc-2.14目錄下。不要安裝在默認路徑,以避免破壞原有的GLIBC庫形成其餘程序異常
[root@localhost build]# make –j4 ///< make
[root@localhost build]# make install ///< make installblog
遇到的問題:圖片
最後一步make install報錯: Can't open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directoryci
解決辦法:在make install 前輸入,touch /opt/glibc-2.14/etc/ld.so.conf,再make install
可能的問題:
1. 虛擬機的話要拷貝到系統裏,不能共享
2. 注意帳戶權限,需在opt/glibc-2.14目錄下新建文件夾
執行完以後查看:strings /opt/glibc-2.14/lib/libc.so.6 |grep GLIBC
使用
下面3種方法的任何一種都可
1. export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
2. /opt/glibc-2.14/lib/libc.so.6 拷貝並重命名爲/lib64/libc.so.6
3. 在makefile 編譯的最後加上: /opt/glibc-2.14/lib/libc.so.6
就能用啦啦啦~~~~~~
【有時可能存在不兼容,我用2.19替換2.12時報錯了】