为 MATLAB 使用 Visual Studio 2013 的 C 编译器
Posted
技术标签:
【中文标题】为 MATLAB 使用 Visual Studio 2013 的 C 编译器【英文标题】:Using Visual Studio 2013's C compiler for MATLAB 【发布时间】:2014-05-26 10:55:54 【问题描述】:我使用mex -setup
命令将 Visual Studio 2013 添加为 MATLAB 的默认 C 编译器。我使用在 Internet 上找到的下载文件添加了 Visual Studio 2013,并附有以下说明。
The files
* msvc120engmatopts.bat
* msvc120opts.bat
* msvc120opts.stp
should be copied to C:\Program Files\MATLAB\R2013a\bin\win64\mexopts .
The files
* msvc120compp.bat
* msvc120compp.stp
should be copied to C:\Program Files\MATLAB\R2013a\bin\win64\mbuildopts .
我的MATLAB版本是R2011b,所以我适当地替换了路径。
这是我用它来运行一个 C 函数来验证编译器是否已经链接。
Log File
我是从这个answer了解到这个方法的。
但是,当我在 Simulink 模型中使用 MATLAB 函数时,我收到以下错误消息,就像我将 VS2013 编译器链接到 MATLAB 之前一样。
Unable to locate a C-compiler required by Stateflow and MATLAB Function blocks.
Use 'mex -setup' to select a supported C-compiler.
【问题讨论】:
您在运行 64 位 matlab 吗? @patrik - 是的,我正在运行 64 位 Matlab。我什至用过 MinGW-64。 这里我不确定,但您可能需要 64 位编译器。 @patrik - VS2013 和 minGW-64 都是 64 位编译器。 你确定VS2013是64位编译器吗?我没用过VS2013,但是从早期版本的经验来看,默认编译器一直是32位编译器。但是,minGW-64 应该可以工作。我不知道。 【参考方案1】:好的,所以唯一适用于我的MATLAB "R2011b" 版本的是 Microsoft SDK 7.1,因为其他编译器对于 Windows 7 64 位来说太旧了。不支持 MinGW-64 位。虽然它可以在 MATLAB 上运行,但 Stateflow 无法识别它。
所以我刚刚从here 下载了.iso 文件。
如果您在安装 SDK 时遇到任何困难,请尝试this。
【讨论】:
其他编译器太旧? Visual Studio 2013 比 MATLAB 2011b 或 Windows 7 更新。以上是关于为 MATLAB 使用 Visual Studio 2013 的 C 编译器的主要内容,如果未能解决你的问题,请参考以下文章
Matlab 中的 Visual Studio 2012 编译器更新
在 Visual Studio 2010 (C++) 中集成 MATLAB 代码
如何使用 Visual Studio 2010 调试 MATLAB .mex32/.mex64 文件
有没有办法在Visual Studio或MATLAB中“映射”程序执行顺序?