Ubuntu18.04 手动安装 make 3.82 + gcc 8.3.0 + cmake 3.20.5

Posted nefu_ljw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18.04 手动安装 make 3.82 + gcc 8.3.0 + cmake 3.20.5相关的知识,希望对你有一定的参考价值。

最近在打一个比赛,要求满足以下运行环境:

  • 操作系统:Linux version 4.19.91-23.al7.x86_64
  • 编译器:gcc-8.3.0 (clang的编译结果可能与gcc稍有不同)
  • cmake: 3.20.52
  • make: GNU Make 3.82

记录一下我的配置过程,帮助大家少走坑!

注:如果之前用apt装过这些包,可能需要删除掉,然后再替换成要安装的版本。我手动安装的软件都在/opt目录下,并且均在root用户下进行操作。另外,本文前置条件是已知vim的使用方法,其他的按照本文的步骤配置就没问题了。

1. 查看Linux版本 5.4.0

Ubuntu终端查看系统版本内核信息:https://www.jianshu.com/p/c219f3a9dc81

cat /proc/version ,显示如下:

Linux version 5.4.0-89-generic (buildd@lgw01-amd64-034) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #100~18.04.1-Ubuntu SMP Wed Sep 29 10:59:42 UTC 2021

当前版本5.4.0 > 要求版本4.19.91,没问题。

2. 安装make 3.82

首先要apt install make,因为在安装make时需要用make来编译(没想到吧,这么坑)。

参考:https://tw511.com/a/01/16317.html

wget https://ftp.gnu.org/gnu/make/make-3.82.tar.gz #下载make-3.82
tar zxvf make-3.82.tar.gz #解压出的目录为make-3.82
mv make-3.82 make-3.82-installer #改个名字
cd make-3.82-installer
vim glob/glob.c #编辑

将/make-3.82/glob/glob.c中的第211#if !defined __alloca && !defined __GNU_LIBRARY__注释、第232#endif注释,如下所示:

./configure --prefix=/opt/make-3.82
sh build.sh
make #如果这里找不到make命令,是因为之前没有apt install make
sudo make install #自动生成目录make-3.82
vim /etc/profile.d/make.sh #创建和编辑make.sh

创建make.sh,内容如下:

export MAKE_HOME=/opt/make-3.82
export PATH=$PATH:$MAKE_HOME/bin

最后卸载之前的装的make,并且source新的make安装路径:

apt remove make -y #删除之前apt装的make,其位置在/usr/bin/make
source /etc/profile
make --version # 显示GNU Make 3.82,成功!

小结:make安装有点麻烦,先得用apt装一下新版本make,最后还得用apt删除一下新版本make,才能留下自己手动装的老版本make。

3. 安装gcc 8.3.0

参考:https://blog.csdn.net/NNNathan/article/details/117928360

wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz #下载gcc-8.3.0.tar.gz
tar zxvf gcc-8.3.0.tar.gz 
mv gcc-8.3.0 gcc-8.3.0-installer
cd gcc-8.3.0-installer
./contrib/download_prerequisites #安装依赖库,比如gmp、mpfr、mpc

mkdir build
cd build

#–enable-languages表示让gcc支持哪些些语言
#–disable-multilib不生成编译为其他平台可执行代码的交叉编译器
#–enable-checking=xxx来增加一些检查,或用–disable-checking生成的编译器在编译过程中不做额外检查
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib --prefix=/opt/gcc-8.3.0

make -j 4 #4个处理器并发编译,这里需要编译较长时间
make install #安装到/opt/gcc-8.3.0

vim /etc/profile.d/gcc.sh #创建和编辑gcc.sh

创建gcc.sh,内容如下:

export GCC_HOME=/opt/gcc-8.3.0
export PATH=$PATH:$GCC_HOME/bin

最后卸载之前的装的gcc,并且source新的gcc安装路径:

apt remove gcc -y #删除原来的gcc,其位置在/usr/bin/gcc
source /etc/profile
gcc --version #显示gcc (GCC) 8.3.0,成功!

4. 安装cmake 3.20.5

如果用cmake --version查看到的版本低,则先卸载老版本:apt remove cmake

wget https://cmake.org/files/v3.20/cmake-3.20.5-linux-x86_64.tar.gz #下载cmake-3.20.5
tar zxvf cmake-3.20.5-linux-x86_64.tar.gz
mv cmake-3.20.5-linux-x86_64 cmake-3.20.5 #把解压出的目录名字改短一点(这个随意)
vim /etc/profile.d/cmake.sh #创建和编辑cmake.sh

创建cmake.sh文件,内容如下:

export CMAKE_HOME=/opt/cmake-3.20.5
export PATH=$PATH:$CMAKE_HOME/bin

最后source一下,然后检查版本

source /etc/profile
cmake --version #显示cmake version 3.20.5,成功!

以上是关于Ubuntu18.04 手动安装 make 3.82 + gcc 8.3.0 + cmake 3.20.5的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 18.04 手动编译安装 ffmpeg

ubuntu18.04手动安装二进制MySQL8.0

Ubuntu18.04安装教程

ubuntu 18.04 64bit如何编译安装内核

Ubuntu18.04下make menuconfig缺少ncurses库

ubuntu 18.04 LTS 安装nginx-1.14.0