Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版
来源:互联网 发布:口碑和淘宝外卖一样么 编辑:程序博客网 时间:2024/06/13 13:06
一、工具准备
1)到官网下载vlfeat,我的是lfeat-0.9.20 ,选择 VLFeat 0.9.20 source code only 这个。
网址:http://www.vlfeat.org/download.html
解压后如下图所示:
二、修改环境配置
我的系统环境是:Windows 10 X64 Visual studio 2013 X86 Matlab 2015b X64
解压后里面有个vlfeat.sln文件,直接用VS2013,打开显示出错,提示找不到vlfeat.vcproj这个文件。
1)修改Makefile.mak 文件
官网上有说怎么去重新编译,使新生成的文件匹配系统,但说的很简单。且容易误导
比如 你想直接用VL_compile 编译得到Matlab Mex 文件,在Windows 10 下 如无意外一般会提示你缺少VL.dll这个文件,即使你补充了VL.dll,依然会报错。
正确应该是先用VS2013编译。
官网只有简单的一句:
you must edit Makefile.mak to adjust the values of a number of configuration variables to match your setup
如果你直接用系统自带的text 工具打开是这样的,见下图:
看着就晕,怎么改。
正解是用Sublime Text 来打开
这样看起来就清晰很多了。
找到这几个东西:
VER = 0.9.20 (vlfeat 版本号)
ARCH = win64 (是64位还是32位,看自己的系统,32位的改win32)
DEBUG = no (用debug 的话 ,改成yes)
BRANCH = v$(VER)-$(ARCH) (我的没有修改这句话)
MSVSVER = (VS版本号,VS2013,填的是120)
MSVCROOT = $(VCINSTALLDIR) (VS 安装路径)
WINSDKROOT = $(WINDOWSSDKDIR) (SDK安装路径)
分别改成你自己的系统环境后如下。
VER = 0.9.20
ARCH = win64
DEBUG = yes
BRANCH = v$(VER)-$(ARCH)
MSVSVER =120
MSVCROOT = C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
WINSDKROOT = C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1
后面还有需要修改的地方,完整的修改好的Makefile.mak和相应的文件,我会上传到CSDN,需要点积分,
这么详细,可节省你不少时间,也不过分。
编辑Makefile.mak 文件这是最重要的一步,错了,后面就没必要再搞了。
2)用VS命令行编译vlfeat
这一步到了官网说的:
$ nmake /f Makefile.mak # for the Windows 64 target$ nmake /f Makefile.mak ARCH=win32 # for the Windows 32 target
具体怎么做呢,还需要做一个准备。
把这两个文件放到这个路径下:C:\Program Files\MATLAB\R2015b\bin\win64\mexopts
具体参考自己Matlab 的安装路径。
下面就可以用VS命令行开始执行
$ nmake /f Makefile.mak # for the Windows 64 target
这句语句了。
@1 在 这个路径下找 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
@2 在开始菜单里面找到VS的安装文件夹,打开Visual Studio Tools
找到 VS2013 x64 本机工具命令提示
点击打开是这样的:
然后用命令行打开你vlfeat 的下载位置
输入:cd C:\Users\CodeMing\Desktop\vlfeat-0.9.20\vlfeat-0.9.20
这时就显示你的vlfeat的安装路径:
这时输入:nmake /f Makefile.mak
就开始编译了。静待编译成功吧。
直到出现 这句: C:\Users\CodeMing\Desktop\vlfeat-0.9.20\vlfeat-0.9.20> 表明编译成功了。
打开toobox - > mex文件夹:出现 mexw64 这些文件了。这时可以用这些文件在Matab上面用了。
三、这时才用 VL_compile 编译得到Matlab Mex 文件。其实上一步已经得到mexw64
当然这一步为了安全:
在Matlab 命令行窗口输入 mex -setup 选择你的编译器,最好对应上面的编译器,如VS2013
@1 把vlfeat 加载matlab路径 @2 把在matlab里面把图了颜色的文件夹和它们的子文件夹都添加到路径下
@3 在toolbox 里面,找到 VL_compile ,点击运行。等Matlab 编译,没意外。很快就编译完成了
已知问题:
1)注意:不要放在中文路径下,VS编译时调用的Matlab识别不了中文路径。
2)类型不匹配如X64与X86,模块计算机类型“X86”与目标计算机类型 “x64”冲突。这个问题还没有很好的解决。
C:\Users\#####\AppData\Local\Temp\mex_iD8uHD\vl_aib.obj : fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型 “x64”冲突 C:\PROGRA~1\MATLAB\R2015B\BIN\MEX.PL: Error: Link of 'C:\Users\#####\Desktop\vlfeat-0.9.20\vlfeat-0.9.20\toolbox\mex\mexw64\vl_aib.mexw64' failed.NMAKE : fatal error U1077: “echo”: 返回代码“0xffffffff”Stop.
文件下载:
http://download.csdn.net/detail/u012211419/9356747
转载需说明
0 0
- Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版
- FontConfig在windows和VS2013下编译
- Windows下利用CMake和VS2013编译OpenCV(TBB编译)
- vs2013+matlab 编译vlfeat 64位
- TLD在VS2013和Matlab2015b下调试运行
- Windows下利用CMake和VS2013编译OpenCV
- Windows下利用CMake和VS2013编译OpenCV
- Windows下利用CMake和VS2013编译OpenCV
- 在windows下使用vs2013编译和调试mysql源代码
- 在windows下使用vs2013编译和调试mysql源代码
- Windows下,如何通过vs2013和yasm编译ffmpeg源码
- wion10 cuda8.0+cudnn+vs2013+matlab2015b+matconvnet编译
- Windows 10 + VS2013 编译 Caffe
- VLFeat开源库介绍及在VS2013中的编译
- windows下编译nginx+nginx_rtmp_modue(vs2013)
- VS2013下安装&编译Windows Caffe
- VS2013下安装&编译Windows Caffe
- Windows下vs2013编译ffmpeg源码
- Java设计模式—单例设计模式(Singleton Pattern)完全解析
- iOS 开发获取当前时间 NSDate
- ActiveMQ 获取消息数据
- iOS中JavaScript和OC交互
- Android关于PagerAdapter的使用方法的总结
- Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版
- 微信开发学习总结-4
- Java中类HashSet<E>和类LinkedHashSet<E>的区别
- facebook的Android调试工具Stetho介绍和使用注意事项
- VC中ListCtrl控件的使用
- HDU 1164 Eddy's research I 数论
- 把OkHttp的网络获取方法写在公共类里
- 设置UILabel上面的文字显示不同的字体和颜色
- JAXB注解小示例