昇腾故障案例详情页

命令行安装gcc依赖时提示找不到包、编译时GCC报错问题

更新时间: 2023/04/28

暂无评分

问题信息

问题来源产品大类关键字
官方安装部署编译安装、gcc、

问题现象描述

部分源下载gcc时会提示无法找到包,需要使用源码编译安装、编译时gcc报错。

原因分析

部分下载源不提供对应依赖包、lib库需要进行软连接。

解决措施

以下步骤请在root用户下执行。

  1. 下载gcc-7.3.0.tar.gz,下载地址为https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
  2. 安装gcc时候会占用大量临时空间,所以先执行下面的命令清空/tmp目录:

    rm -rf /tmp/*

  3. 安装依赖(以CentOS和Ubuntu系统为例)。

    • CentOS执行如下命令安装。
      yum install bzip2    
    • Ubuntu执行如下命令安装。
      apt-get install bzip2    

  4. 编译安装gcc。

    1. 进入gcc-7.3.0.tar.gz源码包所在目录,解压源码包,命令为:
      tar -zxvf gcc-7.3.0.tar.gz
    2. 进入解压后的文件夹,执行如下命令下载gcc依赖包:
      cd gcc-7.3.0
      ./contrib/download_prerequisites

      如果执行上述命令报错,需要执行如下命令在“gcc-7.3.0/”文件夹下下载好以下依赖包:

      • gmp-6.1.0.tar.bz2
      • mpfr-3.1.4.tar.bz2
      • mpc-1.0.3.tar.gz
      • isl-0.16.1.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
      wget http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

      下载好上述依赖包后,重新执行以下命令:

      ./contrib/download_prerequisites

      如果上述命令校验失败,需要确保依赖包为一次性下载成功,无重复下载现象。

    3. 执行配置、编译和安装命令:
      ./configure --enable-languages=c,c++ --disable-multilib --with-system-zlib --prefix=/usr/local/gcc7.3.0
      make -j15    # 通过grep -w processor /proc/cpuinfo|wc -l查看cpu数,示例为15,用户可自行设置相应参数。
      make install    

      其中“--prefix”参数用于指定gcc7.3.0安装路径,用户可自行配置,但注意不要配置为“/usr/local”“/usr”,因为会与系统使用软件源默认安装的gcc相冲突,导致系统原始gcc编译环境被破坏。示例指定为“/usr/local/gcc7.3.0”

  5. 配置环境变量(请在实际需要时再进行配置)。

    例如用户在启动在线推理或训练进程前需执行如下命令配置环境变量。

    export LD_LIBRARY_PATH=/usr/local/gcc7.3.0/lib64:${LD_LIBRARY_PATH}

    其中“/usr/local/gcc7.3.0”为4.c中配置的gcc7.3.0安装路径,请根据实际情况替换。

本页内容

该页面对您有帮助吗?
我要评分