在集群(CentOS 6.6)上安装YouCompleteMe
准备工作
获取动态库
安装YouCompleteMe
所需的其实只有一个动态库文件libclang.so.$version
。由于YCM
一直在升级,对clang
的版本要求也越来越高。 无奈官网最新的几个版本都没有给出CentOS
的预编译包,只能下载官网unknown-linux-gnu
版本或自行编译clang
得到库文件。
实际尝试过后发现官网unknown-linux-gnu
版本虽然可以编译通过,但是无法使用。因此只能选择自行编译clang
,具体编译安装过程可以参考。
配置gcc及g++版本
由于集群默认gcc
版本太低,故需切换高版本gcc
并设置CC
和CXX
1 2 3 4 5
| export CC=gcc export CXX=g++
|
设置python版本
YouCompleteMe
目前同时支持python2
及python3
,因此开启vim
对python2/3
的支持均可以。
1 2 3 4
| pyenv shell 2.7.15
pyenv shell 3.6.6
|
问题:原本想编译vim
使其同时支持python2
和python3
,但不知哪里出了问题,虽然显示同时支持,可实际上一个都不支持。
安装 YCM
方法一
使用自带安装脚本install.py
。
1 2 3 4 5 6 7 8 9 10
|
cd $HOME/.vim/vim_plugin/YouCompleteMe/third_party/ycmd/cpp/ycm/ vim CMakeLists.txt
mv /path/to/my/libclang-$version-*.tar.bz2 ../../clang_archive/
|
方法二
使用我自己写的脚本进行Full Installation
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| pathbuild=$HOME/ycm_build pathdest=$HOME/.vim/vim_plugin/YouCompleteMe/third_party/ycmd/cpp
[ -d $pathbuild ] && rm -rf $pathbuild mkdir $pathbuild && cd $pathbuild
cmake -DCMAKE_C_COMPILER=gcc \ -DCMAKE_CXX_COMPILER=g++ \ -DUSE_PYTHON2='OFF' \ -DPYTHON_INCLUDE_DIR=$HOME/.pyenv/versions/3.6.6/include/python3.6m \ -DPYTHON_LIBRARY=$HOME/.pyenv/versions/3.6.6/lib/libpython3.6m.so \ -G "Unix Makefiles" -DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so . $pathdest
cmake --build . --target ycm_core --config Release
rm -rf $pathbuild
|