Centos7安装YouCompleteMe(一)
来源:互联网 发布:mac world破解版 编辑:程序博客网 时间:2024/06/01 16:45
1、关于YouCompleteMe
github:https://github.com/Valloric/YouCompleteMe
YouCompleteMe是一个vim的插件,它支持对C++、Python等语言的自动补全,简称为YCM。YCM 由 google 公司搜索项目组的软件工程师 Strahinja Val Markovic 所开发,YCM 后端调用 libclang(以获取AST,当然还有其他语言的语义分析库)、前端由 C++ 开发(以提升补全效 率)、外层由 python 封装(以成为 vim 插件。 YCM安装前要仔细阅读其github下的README.md文件(重点看Full Installation Guide下的Unix安装部分)。
2、安装准备检测
系统环境为Centos7_x64。检查vim版本,版本至少为7.4.1578,同时需要支持python2或python3,检测方法为打开vim,命令行输入 :echo has('python') || has('python3')
输出为1,则表示持python2或python3。如果不支持则需要重新源码安装vim使其支持。
3、通过vundle安装YCM
使用vundle安装YCM相当于只是给vimrc添加一个插件'Valloric/YouCompleteMe'。(以下均以root用户权限操作)
vim ~/.vimrc
添加插件
call vundle#begin() ...Plugin 'Valloric/YouCompleteMe' ...call vundle#end()
打开vim安装
:PluginInstall
可能需要等一段时间,大约半个小时以内吧,安装完后会新增YouCompleteMe目录
4、添加对C/C++语言支持库
下载最新版的 libclang,clang版本至少3.9。Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。源代码发布于BSD协议下。Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。Clang是一个C++编写、基于LLVM、发布于LLVM BSD许可证下的C/C++/Objective-C/Objective-C++编译器。它与GNU C语言规范几乎完全兼容(当然,也有部分不兼容的内容,包括编译命令选项也会有点差异),并在此基础上增加了额外的语法特性。由于yum源最新版本是3.4.2,且官网也没给出专门为Centos适配的二进制包,所以采用源码安装。
下载源码及安装:
wget http://releases.llvm.org/5.0.0/llvm-5.0.0.src.tar.xzwget http://releases.llvm.org/5.0.0/cfe-5.0.0.src.tar.xzwget http://releases.llvm.org/5.0.0/compiler-rt-5.0.0.src.tar.xztar -Jxvf llvm-5.0.0.src.tar.xzmv llvm-5.0.0.src.tar.xz llvmtar -Jxvf cfe-5.0.0.src.tar.xz -C ./llvm/toolscd ./llvm/toolsmv cfe-5.0.0.src clangcd ../..tar -Jxvf compiler-rt-5.0.0.src.tar.xz -C ./llvm/projects/cd ./llvm/projects/mv compiler-rt-5.0.0.src compiler-rt
尝试使用configure安装(llvm为了防止编译的中间结果分布在码源目录中,影响码源的结构。因此不支持目录内编译。需要在码源目录外创建额外的编译目录build)
cd ../..mkdir buildcd build/../llvm/configure --enable-optimized CC=gcc CXX=g++
提示应使用CMake安装
cd ./buildcmake -G "Unix Makefiles" ../llvm
cmake生成makefile完成
开始安装(要有root权限)
make -j4make
三次make 均出现编译错误!
下载二进制版(初步使用第二个)
wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-aarch64-linux-gnu.tar.xzwget http://releases.llvm.org/4.0.1/clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar.xz
解压缩到指定目录
tar -Jxvf clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar.xzmv clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar.xz clang_llvmcp -R ./clang_llvm /usr/local/
5 编译 ycm_core 库
编译前需要确认是否安装python-devel 或python3-devel,版本最好与所安装的python一致。
经查看相应版本已安装
yum search python3 | grep devel
yum info python34-devel.x86_64
新建相关目录
mkdir ycm_buildmkdir ycm_tempcd ycm_tempcp -R xxx/clang_llvm ./mv clang_llvm llvm_root_dir
使用cmake生成configuration文件
cd ../ycm_buildcmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=/home/xxusernamexx/software/ycminstall/ycm_temp/llvm_root_dir . /opt/vim8/share/vim/bundle/YouCompleteMe/third_party/ycmd/cpp
编译安装
cmake --build . --target ycm_core
6 vim 安装后问题及解决
安装完使用vim 出错
问题:the ycmd server SHUT DOWN (restart with ‘:ycmRestartServer’). Unexpected error while loading the YCM core library. Type ‘:YcmToggleLogs ycmd_56544_stderr_99h8bjsp.log’ to check the logs
问题定位,在vim命令模式下输入:
:YcmToggleLogs ycmd_53106_stderr_lnyznte5.log
经搜索有 libtinfo.so.5,说明可能是配套软件版本比较旧的原因
[root@localhost lib64]# find / -name libtinfo.so.5/usr/lib64/libtinfo.so.5
经搜索libtinfo 是由 libncurses提供的,查看当前ncurses(-devel)版本
yum info ncurses
yum update ncurses-devel
仍然不可以,下载最新rpm包安装最新版ncurses
wget ftp://rpmfind.net/linux/mageia/distrib/cauldron/armv5tl/media/core/release/libncurses6-6.0-9.mga7.armv5tl.rpm[xxxxxx@localhost updates]$ rpm -i libncurses6-6.0-9.mga7.armv5tl.rpm警告:libncurses6-6.0-9.mga7.armv5tl.rpm: 头V3 RSA/SHA1 Signature, 密钥 ID 80420f66: NOKEY错误:依赖检测失败: libdl.so.2(GLIBC_2.4) 被 libncurses6-6.0-9.mga7.armv5tl 需要 libgcc_s.so.1(GCC_3.5) 被 libncurses6-6.0-9.mga7.armv5tl 需要 libstdc++.so.6(CXXABI_1.3.8) 被 libncurses6-6.0-9.mga7.armv5tl 需要 libstdc++.so.6(CXXABI_1.3.9) 被 libncurses6-6.0-9.mga7.armv5tl 需要
降低clang版本重新安装
wget http://releases.llvm.org/3.9.0/clang+llvm-3.9.0-x86_64-fedora23.tar.xz
安装完后
[root@localhost lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBC_2.3GLIBC_2.2.5GLIBC_2.14GLIBC_2.4GLIBC_2.3.2GLIBCXX_DEBUG_MESSAGE_LENGTH
libstdc++.so.6版本较旧
思路是升级GCC!!!
未完待续。。。。。。
- Centos7安装YouCompleteMe(一)
- Centos7安装YouCompleteMe(二)
- Centos7安装vim8.0 + YouCompleteMe
- Centos7安装vim8.0 + YouCompleteMe
- centos7下安装vim的YouCompleteMe插件
- (一)安装CentOS7
- CentOS7 Vim自动补全插件----YouCompleteMe安装与配置
- YouCompleteMe安装
- youcompleteme 安装
- youcompleteme安装
- 安装YouCompleteMe
- 安装YouCompleteMe
- YouCompleteme 安装
- YoucompleteMe安装
- Youcompleteme安装
- [CentOS7环境搭建](一)VM中安装CentOS7
- (一)VMware安装liunx虚拟机centos7
- centOS7 一键安装
- hdu6035_Colorful Tree_(树形DP)
- java 多态
- O
- 用递归的方法把一个无符号整数的每一位数字单独写出来,并且计算出每一位加起来的和。
- 性能测试的一些行话,郭芙大话性能测试
- Centos7安装YouCompleteMe(一)
- Java字节码3-使用ByteBuddy实现一个Java-Agent
- 理解Java类加载的步骤
- 模板库(数据结构)
- 【Ubuntu】在终端内使用screenFetch(显示版本信息)
- Python实现指定排序函数进行排序
- Android App冷启动优化
- 软件工程(C语言实践篇)学习心得总结
- 把字符串转换成整数