博主最近用vlfeat库做课题,网上搜索使用方法,一大片都会告诉你说:run(/vl_setup) 然后就好啦哈哈哈哈哈哈~~~~~~~~~~~~~~
But!理想很丰满,现实很骨感,当博主在官网下载了vlfeat并按照如下操作之后:
MATLAB却出现了如下错误:
Invalid MEX-file 'D:\codingtool\library\vlfeat\toolbox\mex\mexw64\vl_version.mexw64': 找不到指定的模块
准备用vs先编译一下vlfeat再看看效果,没想到意外的成功了!下面就是完整的流程啦~
Step 1 准备工作要做好~
准备好vs2012(其他版本也可以,只要保证与MATLAB里的一致就好)、vlfeat包http://www.vlfeat.org/index.html、MATLAB R2014b(其他版本应该也可以了啦~)
Step 2 VS2012编译vlfeat
1. 打开VS2012 x64 Native Tools Command Prompt,在命令行中依次输入如下图所示的命令:
看到上面的版本号11.00.50727.1了木有宝宝们?记住它哈~
2. 在vlfeat/make/nmake_helper.mak文件中加入vs2012参数(你是其他版本就找到其他版本对应的地方,看看有没有你这个版本号,有的话就不用改了,么有就加上),如下图,在VL_MSVC = 11.0的那里面已经有“11.00.50727.1”了,所以博主不用再加。如果你是vs2013,就找VL_MSVC = 12.0的,添上你的版本号就好啦。或者再没有就直接在圈红的那个位置自己写上~
3. 打开VS2012 x64 Native Tools Command Prompt(一般在开始菜单 vs对应文件夹下面就有),定位到/vlfeat-0.9.20目录下,为了防止有小盆友不知道怎么定位到,先贴图说明哈,宝宝们要改的就是cd后面改成自己放vlfeat的位置~
4. 定位到之后输入如下命令:
然后宝宝们就静静的等着它编译完成吧~完成之后并不会有说successful。。。命令提示还是静静的回到了初始状态就说明没问题啦:
4步完成后,将会在/vlfeat-0.9.20/bin目录下,新增一个win64目录,里面会有生成的vl.dll、vl.lib和一些test执行文件,后面MATLAB就能用这些啦。
Step3 在MATLAB中完成最终配置
1. 首先打开MATLAB,输入语句:run('D:/codingtool/library/vlfeat-0.9.20/toolbox/vl_setup');将vlfeat路径添加进来。注意D:/codingtool/library是需要宝宝们改成自己放vlfeat的路径哒~
2. 切换MATLAB路径到vlfeat文件夹里面,直接在下图的红色横线那里选到就行:
3. 找到toolbox下面的vl_compile.m并直接运行之,然后静候成功啦~
★在运行vl_compile.m时遇到了找不到支持的SDK或者compiler的情况,这是因为MATLAB新版本在运行mex库时需要Windows SDK 7.1,而不是之前的.NET4。又因为.NET4 + Visual C++ 10和SDK 7.1存在一定冲突,须将前者先卸载才能安装后面一个。
在参考
1.http://www.cnblogs.com/zzling007/p/6661705.html
2.http://www.cnblogs.com/duanshuiliu/archive/2013/04/02/2994776.html
3.https://cn.mathworks.com/matlabcentral/answers/233850-how-can-i-install-sdk-7-1-on-windows-10
之后,总结整体步骤如下:
(1) 卸载
Visual c++ 2010 x86 redistributable、
Visual c++ 2010 x64 redistributable(64位windows)
(2)运行命令,没有安装的话就会提示不存在
msiexec /x {2F8B731A-5F2D-3EA8-8B25-C3E5E43F4BDB}
msiexec /x {81455DEB-FC7E-3EE5-85CA-2EBDD9FD61EB}
(3)安装Windows SDK 7.1
这个步骤可能会有关于RTE.NET 报错,不必理会继续安装。
(4)运行补丁
VC-Compiler-KB2519277
至此完成Windows SDK 7.1 安装。MATLAB的mex 库可以正常使用。
Windows SDK 7.1 32bits下载地址:http://download.microsoft.com/download/F/1/0/F10113F5-B750-4969-A255-274341AC6BCE/GRMSDK_EN_DVD.iso
Windows SDK 7.1 64bits下载地址:http://download.microsoft.com/download/F/1/0/F10113F5-B750-4969-A255-274341AC6BCE/GRMSDKX_EN_DVD.iso
Visual c++ 2010 补丁包VC-Compiler-KB2519277下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=4422
4. 等他运行完成后可以在MATLAB里输入vl_version verbose。配置成功的话就是下面的效果啦~
终于成功了好嗨森是不是~~~~~~博主还要嘱咐一句,为了以后能一打开MATLAB就能麻溜儿的用起来vlfeat,宝宝们还要多做一步:把刚才的run('D:/codingtool/library/vlfeat-0.9.20/toolbox/vl_setup');语句保存成一个叫做startup.m的m文件,放在你的MATLAB打开时的那个路径下(好像叫做启动路径吧),博主一打开MATLAB是这样的路径,所以你看startup就被我放在这里了。
然后就万事大吉啦~感谢观看喵,如果有帮到宝宝我很开熏~如果米有,那就遗憾啦T T