转:http://blog.csdn.net/u011718701/article/details/51452011
博主最近用vlfeat库做课题,网上搜索使用方法,一大片都会告诉你说:run(/vl_setup) 然后就好啦哈哈哈哈哈哈~~~~~~~~~~~~~~
But!理想很丰满,现实很骨感,当博主在官网下载了vlfeat并按照如下操作之后:
MATLAB却出现了如下错误:
Invalid MEX-file 'D:\codingtool\library\vlfeat\toolbox\mex\mexw64\vl_version.mexw64': 找不到指定的模块
我就知道没这么简单啊摔(╯‵□′)╯︵┻━┻问题的关键是我进入mex\mexw64\明明能找到这个模块的!为什么MATLAB不可以!你是有多笨!!(博主的工科男票竟然让博主重新解压再来一次操作就好了呢~~博主考虑要不要换个男票了= =)于是博主痛定思痛,准备用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并直接运行之,然后静候成功啦~
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