先说一下我是 Mac OS 系统,要在 Mac 上编译 MatConvNet 需要 Xcode,但是高版本的 Xcode,Matlab 不支持,换了低版本的 Xcode,OS系统不支持,我是卡死在这,转去 Windows 服务器的。
安装 Matlab
我的服务器系统是 Windows Server 2016,可以先查一下各版本 Matlab 的支持系统和支持编译器,选一个合适的,我的是 R2018a,安装包链接,提取码:n63y
现在说下我走过的坑,本来我是在本机下载安装包再传给服务器,但是在传压缩包的过程中总是出现未知错误导致失败,然后我又在本地解压再传给服务器,文件倒是可以传过去,但是安装程序报错,提示不支持 16-bit 应用程序,最终用最麻烦的办法解决了:
- 本地下载百度网盘安装包,复制粘贴到服务器,服务器安装百云网盘
- 在服务器上下载 Matlab 和 WinRAR,WinRAR 链接,提取码:i1am
- 用 WinRAR 解压安装包,正常安装
- 安装密匙:09806-07443-53955-64350-21751-41297
- 将安装包解压后的 Crack 文件夹里的 license_standalone.lic 复制到安装路径下的 licenses 文件夹里
- 将安装包解压后的 Crack 文件夹里的 R2018a 文件夹下的 bin 文件夹复制到安装目录下,选择替换,最后可以将安装目录下 bin 文件夹里的 Matlab 图标发送到桌面快捷方式
- 如果出现 License Manager Error-103 问题(十有八九会出现),修改 license_standalone.lic 文件,用记事本打开,Ctrl + H,将 SIGH= 全部替换为 TS_OK SIGN= 再打开 Matlab 就没问题了
编译 MatConvNet
MatConvNet 可以到官网下载,上面也有安装和编译过程,目前我只做了 CPU 编译,所以没有装 CUDA 现在说下我走过的坑,一开始我用的是 MinGW64 C/C++ 编译器,但是 MatConvNet 应该是不支持,所以又安装了 Microsoft Visual 2017,我装的社区版,免费
- 下载,提取码:1545,安装时我只选了使用 C++ 的桌面开发
- 在 Matlab 命令行输入 mex -setup 可以查看当前使用的编译器,可以根据提示修改
- 修改后查看 C++ 编译器,确认是 Microsoft Visual C++ 后继续
mex -setup C++
- 将 MatConvNet 文件位置作为工作路径,添加路径 matlab
addpath matlab
- 编译 MatConvNet
vl_compilenn
- 如果出现问题:Unable to find cl.exe,我试了添加环境变量,还是不行,最后解决方法: 在 VS 安装目录下找到自己对应系统的 cl.exe,我的路径是 Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64,复制到 MatConvNet 目录下的 matlab 文件夹
终于成了,enjoy