环境: Ubuntu14.04 32位
下载
通过Pathogen下载,在./vim/bundle下执行
git clone https://github.com/Valloric/YouCompleteMe
然后在YCM仓检出其依赖项
git submodule update --init --recursive
编译
YCM的语义补全基于Clang编译器,需要编译才能使用,而YCM的编译需要clang的支持,实际上需要的是libclang.so库文件。Clang官网上虽然提供了其预编译文件,但是是64位的,所以我们需要下载clang源码手动编译生成32位libclang.so。
从这里下载:http://clang.llvm.org,按照上面的方式检出clang仓(要安装svn),然后编译,值得注意的是,官网上构建是debug模式,我们不采取该种方式。
1.Checkout LLVM:
Change directory to where you want the llvm directory placed.
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
2.Checkout Clang:
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..
3.Checkout extra Clang Tools: (optional)
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd ../../../..
4.Checkout Compiler-RT:
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
5.Build
cd ../..
mkdir build (for building without polluting the source dir)
cd build
../llvm/configure --enable-optimized
构建过程时间特别长,最后也没有完全构建成功,但是我们需要的libclang.so文件已经生成,可以用来YCM了。
现在开始编译YCM
cd path_to_ycm
mkdir ycm_build/
cd ycm_build/
cmake -G "Unix Makefiles" ~/.vim/bundle/YouCompleteMe/cpp -DEXTERNAL_LIBCLANG_PATH=path_to_libclang/libclang.so
make ycm_core // libclang.so and ycm_core.so generated
make ycm_support_libs // ycm_client_support.so generated
至此,编译完成
配置使用
配置.ycm_extra_conf.py,详见http://vimawesome.com/plugin/youcompleteme