美文网首页
GLIBC_2.14 not found

GLIBC_2.14 not found

作者: 珊珊宝贝Catherine | 来源:发表于2019-05-22 17:03 被阅读0次
    image.png

    问题分析与解决

    从上面的日志可以分析出来,在执行Android编译的时候,aapt执行失败了,因为aapt需要/lib64/libc.so.6文件

    /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/android/sdk/build-tools/27.0.3/aapt)
    /opt/android/sdk/build-tools/27.0.3/aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/android/sdk/build-tools/27.0.3/lib64/libc++.so)
    
    1. 查看系统版本
    [root@localhost glibc-build-2.14]#  cat /etc/redhat-release 
    CentOS release 6.5 (Final)
    [root@localhost glibc-build-2.14]# 
    
    2. glibc库版本
    root@localhost /]#  strings /lib64/libc.so.6 |grep GLIBC_
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_PRIVATE
    [root@localhost /]# 
    

    由上面的信息可以看出系统是CentOS 6.5,最高支持glibc的版本为2.12,而研发程序要2.14版本,所以需要升级。

    3. 下载glibc库版本并升级
     #下载
     wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 
     wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz 
     #解压
     tar -xvf  glibc-2.14.tar.gz 
     tar -xvf  glibc-ports-2.14.tar.gz
     #创建相关目录
     mv glibc-ports-2.14 glibc-2.14/ports
     mkdir glibc-build-2.14
     cd glibc-build-2.14/ 
    
     #生成C编译的环境
     yum -y install gcc
    
     #编译C
     ../glibc-2.14/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
     make
    
     # 安装刚才编译好的 libc.so
     makeinstall 
    
     # 查看glibc库版本
     strings /lib64/libc.so.6 |grep GLIBC_
    
    步骤拆分
    • 下载glibc-2.14.tar.gz 和 glibc-ports-2.14.tar.gz 并解压
    #执行以下命令即可下载
     wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 
     wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz 
    #执行以下命令即可解压
     tar -xvf  glibc-2.14.tar.gz 
     tar -xvf  glibc-ports-2.14.tar.gz
    
    • 移动目录并创建目录
    mv glibc-ports-2.14 glibc-2.14/ports
    mkdir glibc-build-2.14
    cd glibc-build-2.14/ 
    

    将glibc-ports-2.14目录移动到 glibc-2.14/ports,并创建一个目录 glibc-build-2.14,并且接入该目录

    • 安装gcc并编译
    cd glibc-build-2.14/ 
    ../glibc-2.14/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    make
    

    直接编译会出错,会报一个错误 configure: error: no acceptable C compiler found in $PATH,查看提示发现是因为该Linux服务器上没有安装gcc编译器,缺少gcc编译环境,可以通过yum安装gcc编译环境:yum install gcc

    错误提示

    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details.
    

    执行以下命令安装gcc

    yum install gcc
    

    执行一会儿,gcc环境就安装好了。然后我们可以重新执行上面的编译命令

    cd glibc-build-2.14/ 
    ../glibc-2.14/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    make
    
    • 安装刚才编译好的so
      继续完成后续的安装,执行下面的命令即可
    make install
    

    以上完成不报错的话,查看库文件,发现/lib64/libc.so.6软链接指向了2.14版本

    [root@localhost glibc-2.14]# ll /lib64/libc.so.6 
    lrwxrwxrwx. 1 root root 12 4月  17 13:03 /lib64/libc.so.6 -> libc-2.14.so
    [root@localhost glibc-2.14]# 
    
    • 再次查看glibc支持的版本
    [root@localhost glibc-2.14]# strings /lib64/libc.so.6 |grep GLIBC_
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_PRIVATE
    [root@localhost glibc-2.14]# 
    

    可以看到glibc支持的版本已经到2.14,再次执行程序就不会报错了。

    4. 重新运行Jenkins编译看看

    再一次重新运行Jenkins进行编译,发现是编译成功的。大功告成!

    参考文档1
    参考文档2

    相关文章

      网友评论

          本文标题:GLIBC_2.14 not found

          本文链接:https://www.haomeiwen.com/subject/sqjuzqtx.html