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的主要内容,如果未能解决你的问题,请参考以下文章