文章目录
1 环境
首先查看centos7版本信息,我的版本是64位、7.5.1804(目前最新版本):
cat /etc/centos-release
uname -r
getconf LONF_BIT
2 安装YouCompleteMe前准备工作
YouCompleteMe的github地址:https://github.com/Valloric/YouCompleteMe
YouCompleteMe简称为YCM,YCM安装前要仔细阅读其github下的README.md文件(重点看full installation guide下的安装部分)。当然也可以直接跟着下面流程来走。说明一下,我的centos是刚安装好的原生系统,还没有安装vim、gcc等,yum版本为3.4.3。
我之前都是用yum直接安装vim和gcc,根本达不到版本要求,yum所安装的版本太低,还是应该要手动编译安装才行得通。
2.1 编译安装gcc 8.2.0
首先先通过yum安装gcc低版本(不安装无法编译安装其他软件包),yum安装的gcc版本是4.8.5
yum install gcc gcc+ gcc-c++ -y
gcc -v
当前网上最新版本是8.2.0,可以选择安装比这个版本低一些的,但是由于要满足c++11,所以安装版本应大于4.8。
gcc编译安装需要依赖gmp,mpfr,mpc 这三个包,这三个包以及gcc的下载地址都是:ftp://ftp.gnu.org/gnu
在下载地址下可以看到,gcc最新版本是8.2.0,gmp的最新版本是6.1.2,mpfr的最新版本是4.0.1,mpc的最新版本是1.1.0
找到自己想下的版本,可以直接在网页手动下载,也可以输入下面的命令:
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
所有的编译完后,添加环境变量:
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
保存退出,输入“source ~/.bashrc”命令,立即生效。接下来就可以编译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
make时如果出现了以下问题,则说明没有安装zlib