VS2017 和 Matlab R2016b 混合编程配置

前言:由于个人VS版本使用到2017问题,涉及到混合编程等一系列问题,发现只有2016b版本和更高的版本支持。我也是弄了一天才解决这些问题,唉~

环境
Win 10 + Visual Studio 2017 + Matlab R2016b

问题
Matlab 输入:

mex -setup
未找到SDK…
mbuild -setup
未找到SDK…
1
2
3
4
这两条命令都不能使用,就别提下面的混合编程了。

解决方法
1.进入网站:https://www.mathworks.com/support/bugreports/1487958 ,需要注册登录,下载:attachment_1487958_16b_win64_2017-05-10.zip(附上个人已经下载OK的点击下载压缩包)

2.打开Matlab安装路径,例如:E:\Win10\Win10_Software\Matlab 2016b

3.将压缩包里的文件msvc2017.xml和msvcpp2017.xml拷贝到:E:\Win10\Win10_Software\Matlab 2016b\bin\win64\mexopts

4.重启MATLAB,运行上述命令,成功,至于MinG64 Compiler是我参考网上别的教程配置的。

参考
win10系统使用vs2017 community作为matlab2016b编译器
第二次补充:装了matlab2017a的同志碰到这个问题也可以试一下,官方也给了相应的附件 attachment_1487958_17a_win64_2017-05-10.zip

第一次补充:如果下面的步骤没有生效,大家可以检查一下vs2017是否有安装“C++桌面开发”功能,详情见 vs2017补充安装

小伙伴们可能会发现,同时装了matlab2016b和vs2017 community之后,想要用mex -setup来使用matlab编译C/C++文件,发现在命令行输入mex -setup以后提示找不到编译器,这就奇了怪了,明明装了VS,为何找不到编译器?难道是vs2017不支持matlab2016b么?

带着好奇心我去看了一下matlab官方的文档中关于版本支持的编译器,发现vs2017是可以支持的,链接请看:matlab2016b支持的编译器列表 可以看到Microsoft Visual C++ 2017 Family 12 。注意看一下这个12是右上角的标注,我们往文档下面拉可以看到family的意思是:12. Community, Professional, and Enterprise editions are supported 这里所说的意思很明显了,community肯定是支持的。

那么为什么会出现上面的问题呢?别着急,我们再看一下,那个支持列表里面的Microsoft Visual C++ 2017 Family后面还有一个小括号,里面的内容是:Patch required 是的,不用怀疑,点进去就对了。

点进去我们会发现,原来我们还需要安装一些东西才可以,按照里面第一条回答,选择自己所需要的功能,点击相应的链接。这里我以自己需要的MEX-file compilation 为例讲解一下解决过程。这里点击链接可能会提示需要登录mathworks账号才能查看,大家按照步骤注册或者登录就行。实在不想登录的也可以接着看如下的过程。

先从上往下读一下,读不懂也没关系,重点看到Installation instructions这里,我用中文稍微解释一下:

Log in to an account with appropriate permissions to overwrite files in your MATLAB installation.(就是打开你安装好的matlab)
Locate your MATLAB installation by typing matlabroot at the MATLAB command prompt. This folder is referred to as < MATLAB > in subsequent steps.(在命令窗口输入matlabroot来获取matlab安装的路径,这个路径我们下面统一称为< MATLAB >)
Exit MATLAB. (退出matlab)
Download the attached .zip file associated with this Bug Report and store the file in the folder. You may need administrative privileges to save the .zip file in the folder. To do this, open this Bug Report in a browser started in administrator mode, then from the browser save the .zip file in the < MATLAB > folder.(下载附件的zip文件,attachment_1487958_16b_win64_2017-05-10.zip 先不用解压,并将其放到刚刚所说的< MATLAB >路径下。由于我们一般matlab是安装到了C盘里面,所以复制文件可能需要提供管理员权限,照着勾选管理员权限就行。)
For each file that appears in the .zip file, find the corresponding file in your existing < MATLAB > folder and make a backup of it. (这里提示说查看压缩文件夹下与< MATLAB >路径下同名的文件,需要先备份一下,以免覆盖文件时导致文件丢失。)
Extract the files from the .zip file into the < MATLAB > folder. You may be prompted to provide Administrator privileges when extracting the .zip file.(将压缩包解压缩到< MATLAB >文件夹,注意这里解压缩的选项,是解压缩到当前文件夹,不是解压到一个与压缩包同名的文件夹,这里的目的就是把一些附加的文件添加到原来的文件夹下,所以其实我发现并没有覆盖原来的文件夹,而是原来文件夹下面多了文件)
Delete the .zip file in the < MATLAB >folder. (删除压缩包文件)

VS2017 和 Matlab R2016b 混合编程配置问题解决!相关推荐

  1. qt web混合编程_基于Qt与MATLAB的混合编程技术

    摘要:在Qt雷达仿真系统中,数据处理及图形显示尤为重要.本文为此提出了一种Qt与MATLAB混合编程的方法.通过VC++和MATLAB混合编程技术,将MATLAB函数封装成动态链接库,Qt调用这个动态 ...

  2. 利用Matcom实现基于MATLAB的混合编程

    利用Matcom实现基于MATLAB的混合编程 来源: 神经网络 作者:AI俱乐部 网友评论 0 条 浏览次数 42 <script> remark_look('re_look.php?c ...

  3. Matlab.NET混合编程调用Figure窗体

    原文:[原创]Matlab.NET混合编程调用Figure窗体 1.前言 做Matlab.NET混合编程好几年了,虽然Matlab很多函数忘记得差不多了,但基本的东西还是能熟练使用.特别是在C#调用M ...

  4. 基于引擎的matlab+vc混合编程的配置

    前段时间在项目中做了一些关于基于引擎的vc+matlab混合编程的工作. 如果你是混合编程新手,我相信使用引擎的方式编程是比较简单快捷的一种方式. 当然这种方法也有其缺点,就是不能脱离matlab运行 ...

  5. matlab r2012a win10,vs2010和Matlab R2012a 混合编程

    注:Matlab r2010b及以后版本才支持vs2010, 之前版本中mbuild命令输入后可能会找不到vs2010编译器. 2.书写m文件 示例如下: function [ c ] = MyAdd ...

  6. Matlab C++混合编程 在VisualStudio下的编程 使用了Opencv库

    某工程上需要在matlab上使用c++版本的opencv,之前使用的是版本配置是matlab2018和vs2018,而现在使用的是matlab2016和vs2015,不同matlab版本的调用c++代 ...

  7. VS2012和matlab 2010b混合编程之环境配

    VC调用matlab Matlab是一个强大的数学计算/仿真工具,其内置了很多实用的现成的函数,而且我们经常也自己定义很多m函数.但在很多情况下,我们不得不使用VC编程.那么,如何在VC中利用matl ...

  8. matlab混合编程设置,matlab c++ 混合编程初始设置

    以前做过matlab7与c++的混合编程:将m函数编译成dll给C++调用,从而加快开发的进度.但是今天在matlab2008b 下面又做了一遍,发现matlab又改了很多东西,诸如增加了面向对象的的 ...

  9. Qt 调用MATLAB引擎混合编程

    0.前言 C/C++调用MATLAB有三个方式:调用dll文件.调用exe可执行程序和调用Engin引擎. 第一种方式利用MATLAB Coder 将MATLAB代码生成C/C++代码和相关动态链接库 ...

  10. 基于VS2017的C++ SuperLU混合编程

    一.SuperLU介绍 SuperLU:是一个通用库,用于直接求解大型稀疏非对称线性方程组.该库是用C编写的,可以从C或Fortran程序调用.它使用MPI.OpenMP和CUDA来支持各种形式的并行 ...

最新文章

  1. android 自定义dialog 定时关闭,Android编程实现自定义Dialog的大小自动控制方法示例...
  2. ARM中Bus Error的测试
  3. Linux C++线程池
  4. 阅读源码学设计模式-单例模式
  5. POJ3764 The xor-longest Path(Trie树)
  6. ehchache验证缓存过期的api_Ehcache缓存配置
  7. arduino COM口被占用问题解决
  8. Nginx反向代理 实现Web负载均衡
  9. 关于vue中watch和computed
  10. Flink入门训练--以New York City Taxi为例
  11. Angualr 加载速度慢,为页面初始化完成前添加loading
  12. 人类赋予人工智能伦理,生物进化方向的突破是关键【刘锋博士南科大发言】
  13. 广义线性模型总结(GLM)
  14. python——decimal模块
  15. 常见python爬虫框架_python的爬虫框架有哪些
  16. 表格怎么样输入数字自己计算机,如何让EXCEL中输入数字后自动显示求和结果
  17. 在LCD液晶屏成功显示图片
  18. 台式计算机usb口不能用,电脑USB接口没反应如何解决教程
  19. Tushare股票分析【四】-- 通过股票代码获取股票名称
  20. SAP BW 详细教程

热门文章

  1. Lake Shore低温温度传感器之超低温 Rox
  2. SpringSecurity 密码加密
  3. 孩子被人欺负了,要不要打回去?非常赞同这位宝妈的做法
  4. H3C交换机设备常用命令
  5. file_get_contents获取参数并用file_put_contents保存图片
  6. Linux关闭防火墙命令
  7. arduino期末考试题
  8. js Array的push pop shift unshift 方法
  9. 把100PB数据迁移到阿里云,需要几步?
  10. Top K Frequent Elements