本機環境: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結尾的組件,很有可能就會出現衝突,所以不要選類似下面的組件