1. 准备工作,安装MinGW-64开发环境,参照这里的说明
-
下载 mingw-get-setup.exe并运行,安装时请注意
-
将安装路径设置为 C:\MinGW\32 (非默认安装路径)
-
不安装GUI
-
编辑配置文件 C:\mingw\32\var\lib\mingw-get\data\profile.xml
<sysroot subsystem="MSYS" path="%R/msys" />
改成
<sysroot subsystem="MSYS" path="%R/../msys" />
- 打开命名行窗口,运行命令
c:\mingw\32\bin\mingw-get install msys-core msys-base msys-vim msys-wget msys-patch msys-flex msys-bison
- 下载mingw64-w64环境,解压到c:\mingw,并将目录mingw64重命名为64
- 至此,mingw的目录结构如下所示
c:\mingw\
32\ (32位工具,编译器)
64\ (64位工具,编译器)
msys\ (MSYS环境)
- 安装llvm for mingw64
- 要在32/64位开发环境之间切换,只需要编辑配置文件 c:\mingw\msys\etc\fstab,添加以下内容
#c:/mingw/32 /mingw
c:/mingw/64 /mingw
然后重新启动msys即可。
2. 下载编译YouComplete,参照这里的说明,重点参照Instructions for 64-bit using MinGW64 (clang)这一章。但是完全按照上面的步骤进行还是会有问题的,需要做以下的修改:
- 在YouCompleteMe/third_party/ycmd/cpp/ycm/CMakeLists.txt中将libclang.dll改成clang.dll。
- 将YouCompleteMe/third_party/ycmd/cpp/ycm/ycm_client_support.cpp和YouCompleteMe/third_party/ycmd/cpp/ycm/ycm_core.cpp的最后3行注释掉。
- 不需要将ycmd.pyd和ycm_client_support.pyd从YouCompleteMe/third_party/ycmd 拷贝到YouCompleteMe/python
- 将libwinpthread-1.dll,libstdc++-6.dll和libgcc_s_seh-1.dll从c:/MinGW/64拷贝到YouCompleteMe/third_party/ycmd;然后使用下面的脚本来测试YouCompleteMe能否正常运行
@rem 请根据本机实际情况设置YCM_INSTALL_DIR和PY_INSTALL_DIR set YCM_INSTALL_DIR=D:/DevTools/vim-7.4.417/vimfiles/bundle/YouCompleteMe |
如果出现ImportError: Dll load failed: 找不到指定模块这样的错误,请使用depends22_x64打开ycmd_core.pyd和ycmd_client_support.pyd检测缺少哪个dll并将其拷贝到c:/MinGW/64拷贝到YouCompleteMe/third_party/ycmd。重复运行测试脚本直至没有错误为止。
- 我没有用vundle来安装YCM,而是手工修改vimrc将YCM目录加入runtimepath来自动加载YCM。
为了简化操作,我写了一个脚本来实现在mingw64环境下自动下载,编译,安装YCM。也可以直接下载集成了YCM的gvim,不过在使用之前请配置好_vimrc文件
let $PATH.=;<PYTHON27的路径>
set runtimepath+=;<YCM的路径>