本机环境:win10、matlab2017a、vs2017社区版。如果你的配置和我的不一样,先别急着卸载,继续看下去。
matlab选择编译环境
安装好vs2017,在matlab的命令行中输入mex -setup,如果弹出以下内容,表明已经使用了vs提供的编译器,则该部分配置成功
C-COT配置
下载两个文件并放到指定目录下
- Download matconvnet ZIP file from https://github.com/vlfeat/matconvnet and unpack it in the external_libs/matconvnet/ folder of the repository.
- Download PDollar Toolbox ZIP file from https://github.com/pdollar/toolbox and unpack it in the external_libs/pdollar_toolbox/ folder of the repository.
运行install.m,再运行demo.m即可。错误解决办法见下面。
ECO配置
下载三个文件并放到指定目录下
- 从https://github.com/vlfeat/matconvnet下载matconvnet,并解压到external_libs/matconvnet/ 路径。
- 从https://github.com/pdollar/toolbox下载PDollar Toolbox,并解压到external_libs/pdollar_toolbox/路径。
- 从http://www.vlfeat.org/matconvnet/pretrained/下载预训练模型imagenet-vgg-m-2048.mat,并放到feature_extraction/networks/路径(注:networks文件夹得自己新建)
运行install.m,再运行demo.m即可。错误解决办法见下面。
错误解决
我一共在4台电脑上配置过这两个环境,典型错误解决如下:
第一个典型错误:vl_compilenn.m运行出错
vl_compilenn.m运行出错。修改vl_compilenn.m文件中cl路径:cl_path = fullfile(cc.Location,你自己的路径);
比如,我安装vs2017的路径是下图中的,所以修改成上图中的样子。
第二个典型错误:编译器选择错误
- ... Well, *that* didn't work either! The mex command failed. This may be because you have already run mex -setup and selected a non-C compiler, such as Fortran.
不要使用MinG64,要选择vs的vc++编译器。详见:matlab vs配置编译器。
第三个典型错误:类型冲突
- fatal error LNK1112: 模块计算机类型“ARM”与目标计算机类型“X86”冲突
如果出现这个,就需要卸载掉vs重新安装。
重新安装选择组件时,从单个组件选择,确保选择到以下两个组件:
如果选择到带有arm结尾的组件,很有可能就会出现冲突,所以不要选类似下面的组件