[轉載]undefined reference to `memcpy@GLIBC_2.14'

轉自:http://blog.sina.com.cn/s/blog_6c5a47d30102wfw9.htmlphp

undefined reference to `memcpy@GLIBC_2.14'

  (2016-04-26 17:01:21)
標籤: 

雜談

分類: 編程_Errors

image

 

緣由html

程序要調用XXX.so,而XXX.so的編譯環境比當前系統版本要高。編程

 

查看現有系統的GLIBC庫版本: strings /lib64/libc.so.6 |grep GLIBCui

image

證明了確實沒有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

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用

下面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時報錯了】

 

參考:http://my.oschina.net/zhangxu0512/blog/262275

相關文章
相關標籤/搜索