windows7+vs2013编译YouCompleteMe过程记录详述编译ycm过程中的哪些坑

2 篇文章 0 订阅
2 篇文章 0 订阅

YouCompleteMe这个插件应该是vim史上最折腾的插件了,我看博客里在类unix系统要用这个插件都相当的麻烦,更别说在windows上了,一天折腾一会,反正哥不急,编译也是一门学问是吧,更有价值的是,遇到问题解决问题的思路和这个过程中得到的历练.引用曾经看过QQ表情上发哥的说的一句话:"泡妞的最高境界是过程,而不是结果",扯远了.

我曾经自己也写过vim自动补全插件,

* 用ctags对VS的include源文件做tags,在vim中加载tags后对sdk中的各种系统函数都能补全.

*但用上以后才发现说上下文环境补全,比如C++自定义类,函数,变量补全还是干不过ide.

*因为这样补全是需要从编译器得到接口,实时编译分析返回数据的.

*还有vim中不能对"ctrl+;","ctrl+,","ctrl+'"这些快捷键做map,还有imap下"ctrl+i"会和tab绑定,"ctrl+m"会和回车绑定,感觉实在是很不爽.

*还有即使这些请况都能解决,在vim中每一个源文件需要的补全环境是不一样的,每一个文件都要建一个补全文件列表,切换到缓冲区时候,自动切换tags,这种事情全做完时间成本太高了,而且这种事情不是成了项目管理了吗,这快折腾成打造IDE了.

*现在对以前折腾的哪些时间,非常后悔,我现在时刻记住一句话"不能转化为经济效益的学习,就是对生命的入侵和蚕食",一个编辑器效果在好也只能起个锦上添花的作用.

各种ide,编辑器,调试器这些都只是工具,为什么只想着用一个工具做所有工具的事,我觉得应该在这些工具最擅长的环境中做用它们,只做少量的配置,使用开发者已经完善的功能,

"不能转化为经济效益的学习,就是对生命的入侵和蚕食","物尽其用,不折腾"这两句话,以后每天早上在心里默念十遍.

回正题,:

下载的工具:

llvm for windows 32和64

cmake

python2,python3

mingw32,mingw64

mysys2  

vs2013

然后一个一个描述哪些坑:

1.不要从https://github.com/Valloric/YouCompleteMe中clone or down>down zip解压编译,这样绝对不可能编译成功,

必须

git clone --recursive https://github.com/Valloric/YouCompleteMe.git
git submodule update --init --recursive
对比这两种方式下载的源码,前一种方式的源文件少了一火车的文件,怎么可能编译成功.
编译vim的时候也是一样的直接从官网下载的压缩包也是少一火车的源文件.

几年前我编译vim时候在这里被坑了一下,因为没写在博客里,今年我编译vim时候又被坑了一遍...

2.vs2013要打上update5补丁,要不然在编译ycm过程中会出现一个bug导致ycm的前置关联编译中断,而使ycm编译失败.

3.mingw和mysys2必须装,是的,我是说即使用vs编译也必须装,要不然在链接的时候会有82个链接错误,__clang_xxx之类的.

4.mysys2曾经也想用cygwin了,但cygwin的包管理太反人类了,一个一个的点嘛,我不用你了行不行.

5.安装mingw和mysys2从官网下载exe以后,换源最好首先用浏览器打开添加的源url,看是不是还能正确打开,

因为这些源网站有时候改目录....,笔者现在测试的这些源url是可以用的,如果以后用时间过的久就应该先测试一下再用的.

/etc/pacman.d/mirrorlist.msys:

Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch

/etc/pacman.d/mirrorlist.mingw32:

Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686

/etc/pacman.d/mirrorlist.mingw64:

Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64

6.用cmake建编译项目时候用cmake-gui,别用命令行,cmake-gui更强大,能更直观的反应系统环境缺少的include和库文件.

7.这个插件的开发者是用vs2017编译的即使你用VS2013编译出来了,如果你系统上只装了VS2013也用不了,因为缺少库文件.

即使编译完了,在使用时候也会出现,


这就是因为缺少库文件造成的,用depends.exe查看ycm_core.pyd



如你从网上一个一个下载放到系统目录里,你最终会发现越少的库越来越多,结论就是需要安装,VS2015设置VS2017或者安装配套的库文件,我下载了VS2015,发现安装包3G多而完整安装需要40多个G.......................,而VS2017离线安装包就13G之多,

尝试安装库文件,

我查阅个一些相关的博客

http://blog.csdn.net/huqiao1206/article/details/50768481

https://www.cnblogs.com/zhongtang/p/7448823.html

感谢以上两位博客主,

不但要打上两个补丁,还要把win7更新到sp1,然后离线安半的哪个

Visual C++ Redistributable for Visual Studio 2015

还不知要安装多少文件呢,

===========================================================================

插件作者说直接用VS2017可以顺利完成编译并使用,可看看咱C盘剩余这不到10G空间,心里有点瑟瑟发抖的赶脚啊.

照这节奏,以后C盘直接分500G吧,哈哈,别和我说别装C盘呀,我软件都装D,E盘,可哪样C盘也会装东西的,不信?难道您没装过VS吗?

买硬盘?至少现在不想买,我在找有完整库文件的系统,从系统上copy一份库过来.

由于开始的几个过程没有截图,所以哪过程中的错误场景,现在不好还原了,后悔,未完待续.

http://mirrors.sohu.com/python/3.6.4/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值