在集群(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
|