Linux 为当前用户安装新版的 GCC 和 CMake

前言

在实验室服务器上编译一个 C++ 项目的时候遇到了 GCC 和 CMake 版本太低的问题,第一反应是升级服务器的 GCC 和 CMake 版本,但是这样的话突然升级版本可能对其他同学有影响,所以最好还是为自己配置一套新的环境吧。主要的过程是下载、编译后在 ~/.bashrc 中设置当前用户环境变量。

安装 GCC

步骤

  1. 下载
    当前 gcc 最新版本是 11.2.0,首先在自己用户空间下新建一个目录下载该版本的 gcc(其他版本可以在这里找到)
    wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz

  2. 解压
    tar -zxvf gcc-11.2.0.tar.gz
    来到解压后的 gcc-11.2.0 目录,下载所需依赖(GMP, MPFR、MPC 和 ISL),可能不能一次性下载成功,这样的话删掉已下载的依赖然后重新执行下面的命令。
    ./contrib/download_prerequisites

  3. 在 gcc-11.2.0 外新建一个目录作为编译后的安装路径:
    mkdir gcc_11.2.0-flash

  4. 来到 gcc-11.2.0 目录下创建一个 build 目录用于编译然后配置编译属性:
    ../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix="gcc_11.2.0-flash 的绝对路径" --enable-threads=posix

  5. 编译并安装
    make -j 64(服务器 64 核我全开了) && make install

  6. 在 ~/.bashrc 中设置用户环境变量后执行 source ~/.bashrc 使其生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
export PATH=/home/dongyang/env_of_flash/gcc-11.2.0-flash/bin:/home/dongyang/env_of_flash/gcc-11.2.0-flash/lib64:$PATH
export LD_LIBRARY_PATH=/home/dongyang/env_of_flash/gcc-11.2.0-flash/lib:$LD_LIBRARY_PATH

# 1.gcc/g++等程序本身的路径
export PATH=/home/dongyang/env_of_flash/gcc-11.2.0-flash/bin:$PATH


# 2.gcc头文件路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/home/dongyang/env_of_flash/gcc-11.2.0-flash/include

# 3.g++头文件路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/dongyang/env_of_flash/gcc-11.2.0-flash/include

# 4.动态链接库路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dongyang/env_of_flash/gcc-11.2.0-flash/lib64

# 5.静态库路径
export LIBRARY_PATH=$LIBRARY_PATH:/home/dongyang/env_of_flash/gcc-11.2.0-flash/lib
  1. 验证
    gcc -v 验证当前 gcc 版本,which gcc 查看其路径

踩坑

make 编译的时候遇到 fatal error No space left on device 的错误,参考 stackoverflow 上这个问题的解决方法,在终端中执行 export TMPDIR=~/tmp 后解决了

安装 CMake

CMake 的安装比起 GCC 简单许多因为少了编译的过程,也就少了潜在的报错的机会哈哈哈哈

步骤

  1. 下载
    当前最新版本是 3.23.0-rc3。在这里找到想要的版本然后下载并解压
  • wget https://github.com/Kitware/CMake/releases/download/v3.23.0-rc3/cmake-3.23.0-rc3.tar.gz
  • tar -zxvf cmake-3.23.0-rc3.tar.gz
  1. 设置用户环境变量
    在 ~/.bashrc 中加上 export PATH=/home/dongyang/env_of_flash/cmake-3.23.0-rc3/bin:$PATH 然后在终端运行 source ~/.bashrc 使其生效

  2. 验证
    cmake --version 查看当前 CMake 版本;which cmake 查看可执行文件所在路径

参考