参考: https://github.com/yangyangwithgnu/use_vim_as_ide html
https://github.com/Valloric/YouCompleteMelinux
根据 https://github.com/Valloric/YouCompleteMe 中的full install 步骤安装出现几个问题:c++
(1)在执行git
cmake -G "Unix Makefiles" -DUSE_SYSTEM_BOOST=ON -DPATH_TO_LLVM_ROOT=/path/to/prebuilt_binarary . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cppgithub
的过程当中报错: c++编译器不彻底支持C++11特性。(当前版本gcc-4.8.5)正则表达式
解决方法: 手动升级到GCC-5.2.0, 具体步骤能够收网上的教程,安装完之后替换旧版本 : /usr/bin/gcc, /usr/bin/g++ ,/usr/bin/c++.(安装步骤参考:https://itbilu.com/linux/management/V1vdnt9ll.html)express
另外: export CXX=/path/to/gcc5.2.0.vim
(2)继续报错以下ide
"Failed to determine the source files for the regular expression backend" (没有找到正则表达式的源文件)ui
这个问题搜了很久,都没有很明确的答案。可是一直怀疑是c++标准库的问题,由于以前安装clang的时候安装了一个libstdc++库,因此有点怀疑是否是库冲突致使,但clang应该是兼容gcc的。
最后尝试设置 LD_LIBRARY_PATH环境变量到本身编译的gcc5.2.0的libstdc++.so的目录(编译目录下的lib),问题解决。
(3)执行
cmake --build . --target ycm_core
报错:连接错误, 添加符号错误,没法识别的格式错误。
缘由:在第一步中使用 -DPATH_TO_LLVM_ROOT,该目录是从 http://llvm.org/releases/download.html 下载的prebuilt_binaray, 版本是Aarch64的版本,后来发现CentOS7 根本就没有对应的编译好的二进制libclang.so。
(CentOS6 好像能够用Fedora版本的)
解决方法:使用本身编译clang的时候编译的libclang.so, 在第一步中删除-DPATH_TO_LLVM_ROOT, 添加 -DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so 。
编译成功,生成ycm_core.so。