VIM补全插件YouCompleteMe编译安装详细步骤

本文详细记录了在CentOS 6.4上安装VIM补全插件YouCompleteMe的过程,包括遇到的Glibc版本过低问题以及解决方法。通过编译cmake、gcc、glibc、llvm和YCM,最终成功配置YCM以支持Clang的语义补全。安装过程中涉及的关键步骤包括查看系统编译器的include路径,编辑.ycm_extra_conf.py和.vimrc配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# VIM神级补全插件YouCompleteMe安装详细步骤

YouCompleteMe(以下简称YCM)是Google搜索组程序员Valloric开发的VIM代码自动补全插件,与其它补全插件相比,最大的特点是能够基于语义完成补全,支持多种语言(智能补全支持Python/C家族/JS/Rust等)。对于C/C++语言,该插件能够利用Clang前端编译器的语义补全接口对当前代码产生符合上下文的智能补全提示,且其补全结果排名应用了搜索引擎的结果排序技术。
效果如下
ycm_snapshot
该插件是属于用VIM编码的杀手级插件,使用该插件以后,自动完成功能秒杀sublime text,notepad++等文本编辑器,直逼Visual Studio.
虽然好用,但是该插件出了名的难装,因为需要自己编译。
关于如何从Clang源码开始安装该插件,网上有数篇blog解释了具体步骤,但是经过一一实验,由于系统环境不同,全部失败了。为了安装该插件,本人找资料、编译(共编译了cmake 3.4.3/gcc 4.8.2/llvm 3.9/glibc 2.21/YCM等5个组件,历时大半天)。 整个安装配置过程前后花了至少一天半,现将安装的曲折过程全程记录如下。

安装编译过程主要参考了以下两篇资料
Full Installation Guide
compile-llvm-against-a-custom-glibc

系统环境

  $ rpm --query centos-release
      centos-release-6-4.el6.centos.10.x86_64
  $ gcc --version # 原版本4.4, 后来自己手动编译了4.8以支持C++ 11
    gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
    Copyright (C) 2013 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

第一次尝试

第一次安装不使用完全安装,直接按照YCM官网的指南直接输入

  python install.py --clang-completer
  python run_tests.py

结果编译链接过程出现以下错误

  [ 98%] Building CXX object ycm/tests/CMakeFiles/ycm_core_tests.dir/main.cpp.o
[100%] Building CXX object ycm/tests/CMakeFiles/ycm_core_tests.dir/TestUtils.cpp.o
Linking CXX executable ycm_core_tests
../../clang+llvm-3.6.0-x86_64-linux-gnu/lib/libclang.so: undefined reference to `posix_spawn@GLIBC_2.15'
../../clang+llvm-3.6.0-x86_64-linux-gnu/lib/libclang.so: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status
make[3]: *** [ycm/tests/ycm_core_tests] Error 1
make[2]: *** [ycm/tests/CMakeFiles/ycm_core_tests.dir/all] Error 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值