Win10+matlab2019b+Visual Studio2017+matcomvnet安装及编译
CPU版本编译
准备:
1. matconvnet
网上有很多下载地址,可以到官网http://www.vlfeat.org/matconvnet/
我下载是matconvnet-1.0-beta25
然后解压放置自己觉得合适的地方,我放到matlab安装文件里面
2.matlab 2019b
matlab安装不在这里详细描述
3.Visual Studio2017
正好我电脑有以前安装好的2017版本,我就没有重新安装其他的版本,一般的话2015版本是现在最稳定的。
编译
1. 命令行输入以下命令,确保MATLAB已 配置为使用您的编译器
2. 将MatConvNet的path加到matlab路径中去
此步骤有两种方法
方法一:
在命令行输入
cd F:\MATLAB2019b\toolbox\matconvnet-1.0-beta25
addpath matlab
方法二:设置路径,添加路径
3.编译MatConvNet
在命令行输入
vl_compilenn
编译完以后,理论上没问题应该是在安装目录下的mex下,多出一系列的.mexw64 编译文件,(64位系统),如果没有就证明没有编译成功。
出现问题
问题1:输入mex -setup mex -setup C++时出现“未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器”
网上有很多解决办法,一开始我以为是版本的问题,所以就将VS2015换成了VS2017,matlab2015换成了matlab2017a,结果还是不行。又安装MinGW-w64 C/C++ 编译器,安装在C盘一级目录下,也是不行。
解决办法:后来在网上看到一方法,安装MinGW-w64时选上gcc->vision下的的选项全选上,然后安装。结果成功。
注意:这个只是单纯的解决了编译器的问题,如果配置matconvnet,不能用以上办法。matconvnet在当前版本中不支持MinGW编译器,MatConvNet不支持MinGW的原因之一是在Windows上它使用GDI +库来加速读取图像文件,所以需要安装Microsoft Visual Studio。难怪matconvnet官网上配置过程中没有提到用MinGW编译器
所以我又将MinGW卸载了,还是在matlab上配置Microsoft Visual C++ 2017以进行 C++ 语言编译。
解决办法:因为matlab 2017中默认配置不包含vs2017的编译环境,需要人为去配置
需要下载文件msvc2017.xml和msvcpp2017.xml(链接:https://pan.baidu.com/s/1ba0OMGOe9QXoPA0ji4ggJw 密码:7lrn).注意:这个文件只适合vs2017,如果配置vs其他版本,需要找到对应版本的这两个文件下载。
并将他们复制到matlab相应的目录下就行了,比如我的:D:\matlab\R2017a\bin\win64\mexopts
成功!
问题2:虽然编译环境配置好,但是matconvnet->matlab->mex下还是没有生成编译好的文件,也就是还是没有编译成功。运行vl_compilenn,出现错误提示:警告: ”CL.EXE not found in PATH. Trying to guess out of mex setup. 'cl.exe' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”
解决办法:网上找了一些解决办法,比如添加环境变量什么的,我借鉴了以为外国网友的办法
在VS2017安装目录下,比如我的:D:\Visual Studio2017\Community\VC\Tools\MSVC\14.14.26428\bin,找到里面对应自己系统的cl.exe,将此复制到matconvnet目录下即可。
终于编译成功了!
问题3:
具体原因我也不知道是什么
只不过根据网上的教程解决成功了。
方法:重新运行一下matconvnet中matlab文件夹下的vl_setupnn函数就可以完美解决。
推荐阅读
-
Win10+matlab2019b+Visual Studio2017+matcomvnet安装及编译
-
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法_PHP
-
ROS编译安装过程中遇到的一些问题及解决方法
-
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法_PHP
-
C++环境安装及 如何用 Sublime Text 实现C/C++代码的编译运行
-
linux下安装protobuf及cmake编译
-
Ubuntu 16系统中GCC 9.2编译器安装方法及C++17标准测试示例
-
Redis 介绍及编译安装单机
-
centos编译安装mysql 5.6及安装多个mysql实例详解
-
centos编译安装mysql 5.6及安装多个mysql实例详解