---
title: 编译安装gcc
description: "以安装gcc 7.3.0为例演示编译安装操作，编译安装其他版本的gcc时，请自行替换源码包或参考gcc官网进行安装。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/softwareinst/instg/instg_0062.html
sourcePath: /source/zh/canncommercial/900/softwareinst/instg/instg_0062.html
indexId: 4a770271ee9e38d388a3b9d6393e3e56fe667424f6302f7a547fd5e8f793820264
---
# 编译安装gcc

以安装gcc 7.3.0为例演示编译安装操作，编译安装其他版本的gcc时，请自行替换源码包或参考gcc官网进行安装。

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

1. 在服务器任意目录（如“/home”）下，执行如下命令获取gcc-7.3.0.tar.gz源码包。
  1 wget https://repo.huaweicloud.com/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

  若该命令报错，用户可单击Link(https://repo.huaweicloud.com/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz)手动下载并上传源码包。

2. 安装gcc时会占用大量临时空间，所以先执行下面的命令清空“/tmp”目录。
  1 rm -rf /tmp/*

3. 根据系统依赖包相应的在线安装方式安装依赖。

  - openEuler系列执行如下命令安装。
    1 yum install bzip2

  - Ubuntu系列执行如下命令安装。
    1 apt-get install bzip2

4. 编译安装gcc。

  a. 进入gcc-7.3.0.tar.gz源码包所在目录，解压源码包，命令为：
    1 tar -zxvf gcc-7.3.0.tar.gz

  b. 进入解压后的文件夹，执行如下命令下载gcc依赖包：
    1 2 cd gcc-7.3.0 ./contrib/download_prerequisites

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

    1 2 3 4 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

    下载好上述依赖包后，执行以下命令：

    1 ./contrib/download_prerequisites

    执行上述命令若显示类似如下报错：

    1 2 3 gmp-6.1.0.tar.bz2: FAILED sha512sum: WARNING: 1 computed checksum did NOT match error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2

    表示可能因网络原因gmp包没有下载完全，可执行rm -rf gmp-6.1.0.tar.bz2命令删除gmp包，再执行wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2命令重新下载。再执行./contrib/download_prerequisites命令。

  c. 执行配置、编译和安装命令：
    1 2 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

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

5. 配置环境变量（请在实际需要时再进行配置）。
  用户在启动在线推理或训练进程前需执行如下命令配置环境变量。

  1 2 3 4 export LD_LIBRARY_PATH=/usr/local/gcc7.3.0/lib64:${LD_LIBRARY_PATH} export CC=/usr/local/gcc7.3.0/bin/gcc export CXX=/usr/local/gcc7.3.0/bin/g++ export PATH=/usr/local/gcc7.3.0/bin:${PATH}

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

  执行gcc --version命令查看gcc版本，若返回如下版本信息，表示安装成功。 1 gcc (GCC) 7.3.0

  如果用户明确需要gcc 7.3.0编译，且由于用户编译脚本等问题，无法通过环境变量控制gcc版本时，可执行如下操作，修改软链接。 备份旧版本软链接。 1 2 3 4 mv /usr/bin/gcc /usr/bin/gcc.bak mv /usr/bin/g++ /usr/bin/g++.bak mv /usr/bin/c++ /usr/bin/c++.bak mv /usr/bin/cc /usr/bin/cc.bak 建立新版本软链接。 1 2 3 4 ln -s /usr/local/gcc7.3.0/bin/gcc /usr/bin/gcc ln -s /usr/local/gcc7.3.0/bin/g++ /usr/bin/g++ ln -s /usr/local/gcc7.3.0/bin/c++ /usr/bin/c++ ln -s /usr/local/gcc7.3.0/bin/gcc /usr/bin/cc 执行gcc --version命令查看gcc版本，若返回如下版本信息，表示配置成功。 1 gcc (GCC) 7.3.0
