为什么要编译
官网有提供编译好的二进制文件(VLFeat 0.9.20),理论上不需要我们再进行编译,但是坑爹的是,自己的电脑上完全不能用!
具体错误和这位博主的一样,但这位博主的解决方式却对我的问题完全不起作用,因为用vs2015编译时有各种坑(╯‵□′)╯︵┻━┻
那么我们开始编译吧
为了能用上VLfeat,那么只能放弃编译好的二进制文件,然后自行编译了。那么我们开始吧
1. 下载源码
2. 修改Makefile.mak
主要是下面圈起来的三项
根据自己电脑的情况进行修改
3.修改make/nmake_helper.mak
4.利用nmake进行编译
首先,打开x64本机工具命令提示符
进行编译:
nmake /f Makefile.mak
顺利的话,就可以编译通过了。但是!!我编译的过程极其不顺利!
让我来总结下一些编译时出现的错误,供大家参考
编译时遇到的麻烦
1. 关于”snprintf”的错误
这里提到了这个错误,大概就是snprintf重定义了,大家去修改host.h文件的内容。
注意的是,源码如果从github上下载的,应该不会出现这个错误
2. don’t know how to make msvcr140.dll
在我机子上,这个错误具体是
好坑爹啊!为什么要有这个错误呢?!因为我们根本没有msvcr140.dll文件,只有msvcp140.dll。那么,我们需要讲Makefile.mak文件中所有出现msvcr的地方改成msvcp(注意,只改小写的地方)
3. NMAKE:fatal error U1077: “echo”:返回代码”0x1”
看着终于可以编译了,好开心,但是最后居然出现了这个错误!搞什么搞什么!在google一番之后,送了口气,原来这个错误并不影响编译。
具体请看[这里](http://gubangzhong.cn/Vlfeat%E7%BC%96%E8%AF%91%E6%8C%87%E5%8C%97/)。链接失效了,在我的记忆中,这个错误不影响使用。也就是说,你如果看到了这个错误,那么编译就是成功了。
总结
为了安装VLfeat,花了一下午加一晚上,终于安装成功了,还是很欣慰的。
通过这次安装,让我明白,错误信息要仔细看!!不然老是在绕圈子。
最后,感谢各位博主提供的安装教程
http://gubangzhong.cn/Vlfeat%E7%BC%96%E8%AF%91%E6%8C%87%E5%8C%97/
http://blog.csdn.net/u011718701/article/details/51452011
http://blog.csdn.net/u012211419/article/details/50311807