一、安裝VS
根據自己Matlab的版本查看適配什麼樣的VS版本,比如下圖中我可以看出我能適用VS2017,所以果斷卸載了VS2019……
根據自己安裝的實際情況,添加下面的(修改)路徑到系統變量的path:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64
注意如果只安裝“使用C++的桌面開發”,如果後面的編譯操作不成功,請回到這裏:
在安裝包處選擇“修改”,除了默認勾選的之外,安裝包再勾選這兩個:
二、下載MatConvNet
http://www.vlfeat.org/matconvnet/
請根據需要自行download並解壓。
三、配置mex
打開Matlab,在下面的命令行窗口中輸入:
mex -setup
選擇Microsoft Visual C++ 2017 (C),不能是下圖這樣的MinGW編譯器。
mex -setup c++
選擇Microsoft Visual C++ 2017,不能是MinGW編譯器。
必須保證C和C++編譯器都是使用VS的。
四、編譯
我的MatConvNet的解壓位置是
E:\matconvnet-1.0-beta25
所以,在Matlab的命令行窗口中輸入:
run E:\matconvnet-1.0-beta25\matlab\vl_compilenn
即
run (MatConvNet的解壓位置)\matlab\vl_compilenn
編譯成功,繼續輸入:
run E:\matconvnet-1.0-beta25\matlab\vl_setupnn
運行完成後沒有報錯/警告,視爲安裝成功。
五、測試
程序提供了vl_testnn來測試
vl_testnn
我在代碼中也調用成功:
六、錯誤解決
(1)在 run vl_compilenn時候,提示錯誤
'cl.exe' 不是內部或外部命令,也不是可運行的程序或批處理文件。
這是因爲安裝VS之後沒有添加cl.exe文件路徑到系統變量的path,具體可見“一、安裝VS”。
(2)在 run vl_compilenn時候,提示錯誤
gdiplus.lib: No such file or directory
這是因爲mex沒有指定好C和C++編譯到VS,具體可見“三、配置mex”。
七、參考引用
https://github.com/vlfeat/matconvnet/issues/303
https://github.com/vlfeat/matconvnet/issues/501