【Matlab】Matlab R2014a 64位与Visual Studio2015的mex相关问题

2023-12-13 16:18

本文主要是介绍【Matlab】Matlab R2014a 64位与Visual Studio2015的mex相关问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于C语言的高效性,在matlab中会经常需要调用C语言的衍生程序,所以用到mex。但是mex -setup中,MatlabR2014a在官方给出的文档中,最高仅支持到VS2013。这让用VS2015和MatlabR2014a的我们会很头疼的一件事情。然而网上对这一方面的资料的好像比较少,通过google和各种百度,整理下面方法供大家参考一下

本文给出的方法仅仅面对***MatlabR2014a 64位 与 Visual Studio2015,win10*** 环境

当mex -setup(注意存在空格)时,弹出:

Error using mex No supported compiler or SDK was found. For options,
visit http://www.mathworks.com/support/compilers/R2014a/win64.

那么打开下面网址则可看到:
这里写图片描述

打开相应版本的supported compilers的detail,选择下载下面的win sdk
这里写图片描述

当安装完SDK后,再在matlab中敲入 mex -setup,则会弹出warning,显示没有合适的compilers。(应该类似下图,当时我忘记截图了,囧)

>> mex -setupWarning: Windows SDK 7.1 appears to be installed, but its compiler was not found. Install .NET Framework 4.0, and then rerun the SDK installation to add the "Visual C++ Compilers" component. See http://www.mathworks.com/support/solutions/en/data/1-IB1G3Q/ for more information.Error using mexNo supported compiler or SDK was found. You can install the freely available MinGW-w64 C/C++ compiler; see Install MinGW-w64 Compiler. For more options, see http://www.mathworks.com/support/compilers/R2015b/win64.html.

这里好像是因为下载的win sdk7.1是.net Framework4的,而win10的版本应该在.NET Framework 4.6,所以在这里出现一点问题。
这里写图片描述
具体参考:
https://cn.mathworks.com/matlabcentral/answers/279692-why-does-microsoft-windows-sdk-7-1-not-get-detected-as-a-supported-compiler-for-windows-10-with-fram

当下载完上述网站给的链接后,matlab应该可以正常mex了
http://www.microsoft.com/en-us/download/confirmation.aspx?id=4422

>> mex -setup
MEX 配置为使用 'Microsoft Windows SDK 7.1 (C)' 以进行 C 语言编译。
Warning: The MATLAB C and Fortran API has changed to support MATLABvariables with more than 2^32-1 elements. In the near futureyou will be required to update your code to utilize thenew API. You can find more information about this at:http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.要选择不同的语言,请从以下选项中选择一种命令:mex -setup C++ mex -setup FORTRAN

以上,欢迎大家继续补充

==============================================================
2017年3月6日更新================================================
有个好友也出现了这个问题,我也将其整理如下:
他的配置如下:MATLAB2016b VS2008 MinGW4.9.2 win7 64位
由于Matlab2016b并不支持VS2008,所以他已经下载好MinGW4.9.2
然而mex出现如下问题:
这里写图片描述

本人感觉应该是MinGW在windows下不能被Matlab识别,因此还是安装个SDK靠谱。
于是建议他安装SDK,链接如下:
https://www.microsoft.com/en-us/download/details.aspx?id=8279

于是便可以正常编译了,如下图:
这里写图片描述

以上
欢迎大家指正补充

注:
实际上如果没有Visual Studio的话,只要下载一个合适的SDK,matlab便能正常编译,没必要都按网上的版本进行特定安装,否则有了VS2015,又装一个VS2013实在蛋疼

这篇关于【Matlab】Matlab R2014a 64位与Visual Studio2015的mex相关问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489100

相关文章

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到