參考: 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。