windows下手动编译YCM.md

根据github上的full install guide,
Windows下手动编译YCM的步骤记录如下:

首先需要说明的是,VIM的版本如果是32位的,后面提到的软件都要用32位的,如果VIM的版本是64位的,后面的软件版本都要是64位的。

条件和软件
  • VIM和版本要在7.3以上
  • 7z
  • Python3 or python2,注意最好与VIM编译中的版本相对应,查看方法是在GVIM中输入:version,查看使用了什么版本的python dll
  • clang:版本必须下载最新的。
  • CMake
  • 用GIT下载YCM:gin clone https://github.com/Valloric/YouCompleteMe.git,在下载完成后,使用命令:git submodule update --init --recursive下载相关的依赖库。这一点很重要,当然时间也是相当长
编译ycm_Core
编译带libclang支持的ycm core.

在桌面建立一个目录:ycm_build,然后在该目录打开cmd.exe窗口,输入:cmake -G "<generate>" -DPATH_TO_LLVM_ROOT=PATH_TO_LLVM . PATH_TO_YCM_3RDPATY_CPP
这其中:
- <generate>:如果是64位编译的话,有以下三种:

Visual Studio 11 Win64
Visual Studio 12 Win64
Visual Studio 14 Win64

分别对应于VS2012, VS2013, VS2015。如果是32位编译的话,将后面的Win64去掉即可。
- PATH_TO_LLVM:是LLVM的安装目录,这个目录包含有:binincludelib等目录。比如:C:/Program Files/LLVM
- PATH_TO_YCM_3RDPATY_CPP:是YouCompleteMe/third_party/ycmd/cpp目录,比如:C:/Vim/bundle/YouCompleteMe/third_party/ycmd/cpp

举个例子来说,在上述的ycm_build目录打开cmd.exe,输入:

cmake -G "Visual Studio 14 Win64" -DPATH_TO_LLVM_ROOT=C:/Program Files/LLVM . C:/Vim/vimfiles/bundle/YouCompleteMe/third_party/ycmd/cpp

即可。

这一行命令如果报错:”Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)”,说明是Cmake没有找到python的相关库在哪里。这时需要使用cmake-gui来解决。
1,打开Cmake-gui,源码目录就是YouCompleteMe/third_party/ycmd/cpp目录,目标目录就是ycm_build的目录。
2,勾选 “Advanced”复选框。
3,点Configure,选择需要的编译器
4,Configure报错后,去掉”USE Python2”的对号,然后把”PYTHON_LIBRARIES”设定为:”%PTYPE%/libs/pythonxx.lib”,比如:”C:/Anaconda3/libs/python35.lib”,然后点Configure,
5,勾选”USE_CLANG_COMPLETER”并配置”PATH_TO_LLVM_ROOT”,比如:”C:/Program Files/LLVM”
6,继续点Configure,直到没有红色为止。然后点Generate。

编译成库

使用下述命令编译成库:
cmake --build . --target ycm_core --config Release

这时,可能会出现一个:LINK : fatal error LNK1104: cannot open file 'python35.lib' [C:\Users\yingjun.wang\Desktop\ycm_build\BoostParts\BoostParts.vcxproj]的错误,解决办法如下:

这个我实在编不下去了,即使把python35.lib添加了BoostParts项目的附加输入里面,编译通过了,但是ycm_core这个项目会出现14个无法识别的符号,用depends.exe查看BoostParts.dll,发现这14个符号是真的没有导出。我表示这个问题并没有解决成功。

这样就可以了,如果需要支持C-Family的语言获得支持,记得要写一个.ycm_extra_conf.py文件。

好了,上面就是官网给出的full installation guide。然而我从来没有成功过,倒是使用下面这种方法一次就成功了:
- 安装好给定的全套软件后,直接python install --clang-completer,记得联网X3, 直接就编译成功了

目测对于python的补全,如果你安装了一个库,YCM很可能不会对其进行补全,这个时候,需要重新python install --clang-completer一下,就可以了,而且这个过程不需要再次联网了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值