Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版

一、工具准备

1)到官网下载vlfeat,我的是lfeat-0.9.20 ,选择 VLFeat 0.9.20 source code only  这个。

网址:http://www.vlfeat.org/download.html

解压后如下图所示:

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第1张图片

 

 

 

二、修改环境配置

 

我的系统环境是:Windows 10 X64    Visual studio 2013 X86    Matlab 2015b X64

 

解压后里面有个vlfeat.sln文件,直接用VS2013,打开显示出错,提示找不到vlfeat.vcproj这个文件。

 

1)修改Makefile.mak 文件

 

官网上有说怎么去重新编译,使新生成的文件匹配系统,但说的很简单。且容易误导

 

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第2张图片

 

比如 你想直接用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 工具打开是这样的,见下图:

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第3张图片

 

看着就晕,怎么改。

 

正解是用Sublime Text 来打开

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第4张图片

 

这样看起来就清晰很多了。

 

找到这几个东西:

 

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

 

具体怎么做呢,还需要做一个准备。

 

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第5张图片

把这两个文件放到这个路径下: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

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第6张图片

 

找到     VS2013 x64 本机工具命令提示    

点击打开是这样的:

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第7张图片

 

 

然后用命令行打开你vlfeat 的下载位置

 

输入:cd   C:\Users\CodeMing\Desktop\vlfeat-0.9.20\vlfeat-0.9.20

 

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第8张图片

 

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第9张图片

这时就显示你的vlfeat的安装路径:

这时输入:nmake /f Makefile.mak

就开始编译了。静待编译成功吧。

 

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第10张图片

直到出现 这句: C:\Users\CodeMing\Desktop\vlfeat-0.9.20\vlfeat-0.9.20>  表明编译成功了。

 

 

打开toobox - >  mex文件夹:出现 mexw64 这些文件了。这时可以用这些文件在Matab上面用了。

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第11张图片

三、这时才用 VL_compile 编译得到Matlab Mex 文件。其实上一步已经得到mexw64 

 

当然这一步为了安全:

在Matlab 命令行窗口输入  mex -setup 选择你的编译器,最好对应上面的编译器,如VS2013

 

@1 把vlfeat 加载matlab路径  @2 把在matlab里面把图了颜色的文件夹和它们的子文件夹都添加到路径下

@3 在toolbox 里面,找到 VL_compile ,点击运行。等Matlab 编译,没意外。很快就编译完成了

Windows 10 下 VS2013 和 matlab2015b 编译 vlfeat-0.9.20 图文详细版_第12张图片

 

已知问题:

 

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

上面这个被csdn调整下载分值了,从默认的5分调整为了48分,用下面这个链接下载吧,还是默认值5分,想改成1分都不行

https://download.csdn.net/download/u012211419/11056016

转载需说明

 

你可能感兴趣的:(计算机视觉)