一、安装cmake:
参考:Linux下安装 CMake_linux安装cmake_马鹏森的博客-CSDN博客
下载:wget -c https://cmake.org/files/v3.26/cmake-3.26.0-linux-x86_64.tar.gz
移动到 /opt mv cmake-3.26.0-linux-x86_64.tar.gz /opt/
解压:cd /opt
tar xvf cmake-3.26.0-linux-x86_64.tar.gz
重命名 mv cmake-3.26.0-linux-x86_64 cmake3.26.0
复制到 /usr/local/cmake
cp -ar /opt/cmake3.26.0 /usr/local/cmake
设置环境变量:
vim /etc/profile
文件最后两行增加两句:
export CMAKE_HOME= /usr/local/cmake/bin
export PATH=$CMAKE_HOME:$PATH
保存退出,刷新环境变量 source /etc/profile
检查是否安装成功:cmake -version
有cmke version 3.26.0显示表示安装成功
二、升级gcc到gcc8.2.0
参考:CentOS7安装GCC-8.2.0_yum安装gcc8_苏晨星的博客-CSDN博客
Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)_centos7 c++ 升级17_禾烟雨的博客-CSDN博客
1.安装低版本的gcc
yum install gcc gcc+ gcc-c++ -y
gcc -v
2.依次安装三个依赖包
先安装压缩包,输入以下命令:
wget ftp://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
wget ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2
wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-4.0.1.tar.bz2
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
然后按照顺序编译
mv gmp-6.1.2.tar.bz2 /opt
cd /opt
tar -xjvf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
mkdir /usr/local/gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
make
make install
mv mpfr-4.0.1.tar.bz2 /opt
cd /opt
tar -xjvf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
mkdir /usr/local/mpfr-4.0.1
./configure --prefix=/usr/local/mpfr-4.0.1 --with-gmp=/usr/local/gmp-6.1.2
make
make install
mv mpc-1.1.0.tar.gz /opt
cd /opt
tar -xzvf mpc-1.1.0.tar.gz
cd mpc-1.1.0
mkdir /usr/local/mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1
make
make install
安装gmp的时候可能会提示错误:
checking for suitable m4… configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons)
安装m4库就行
wget ftp://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.bz2
mv m4-1.4.18.tar.bz2 /opt
cd /opt
tar -xjvf m4-1.4.18.tar.bz2
cd m4-1.4.18
./configure --prefix=/usr/local/
make
make install
3.配置环境变量
vi ~/.bashrc
在最后一行写入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib
之后 :wq保存并退出
再使环境生效
source ~/.bashrc
4.编译gcc
mv gcc-8.2.0.tar.gz /opt
cd /opt
tar -xzvf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir gcc_built
mkdir /usr/local/gcc-8.2.0
cd gcc_built
../configure --prefix=/usr/local/gcc-8.2.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --disable-multilib --enable--long-long --enable-threads=posix
make
make install
编译大概要2-3个小时
gcc -v发现还是原来的版本,就执行一下命令:
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /usr/local/gcc-8.2.0/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /usr/local/gcc-8.2.0/bin/g++ /usr/bin/g++
mv /usr/bin/c++ /usr/bin/c++-4.8.5
ln -s /usr/local/gcc-8.2.0/bin/c++ /usr/bin/c++
查看版本:
gcc --version
g++ --version
c++ --version
如过在使用时出现如/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found这样的报错
拷入libstdc++.so.6.0.2*在/usr/lib64下
找到libstdc++.so.6.0*的文件在哪里:
find / -name libstdc++.so.6.0*
将/usr/local/gcc-8.2.0/lib64/libstdc++.so.6.0.25 拷贝到/usr/lib64:
cp /usr/local/gcc-8.2.0/lib64/libstdc++.so.6.0.25 /usr/lib64
cd /usr/lib64
rm -rf libstdc++.so.6 # 删除软链接
ln -s libstdc++.so.6.0.25 libstdc++.so.6 # 新增软连接