现在用matlab 2016b,
command window中输入mex -setup是正常的:
MEX 配置为使用 'MinGW64 Compiler (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,
您需要更新代码以利用
新的 API。您可以在以下网址找到相关详细信息:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++
mex -setup FORTRAN
但输入mbuild -setup就弹出:
错误使用 mbuild (line 164)
Unable to complete successfully.
未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;
请参阅安装 MinGW-w64 编译器。有关更多选项,请访问
http://www.mathworks.com/support/compilers/R2016b/win64.html。
相关的帖子都翻过,还是没明白是什么问题。
举几个例子:
1、 说安装Windows.net framwork sdk 的,我找过控制面板,是有windows.net
framwork 4.5 sdk的。
2、 说在bin\win64\里面的mbuildopts和mexopts里面更换文件的,我在bin\win64里面只能找到mexopts文件夹,找不到mbuildopts文件夹。
不知道各位大神有什么办法来详细讲一讲是什么问题?
使用Matlab需要混合编译时,Matlab编译器设置时有时会遇到如下问题
mbuild -setup
错误使用 mbuild (line 164)
Unable to complete successfully.
未找到支持的编译器或 SDK。有关选项,请访问 http://www.mathworks.com/support/compilers/R2014a/win64。
mex -setup
错误使用 mex
未找到支持的编译器或 SDK。有关选项,请访问 http://www.mathworks.com/support/compilers/R2014a/win64。
原因网上陈述为“原因:matlab要找windows sdk的mt.exe,找不到报错的.因为vs2013在安装时,windows sdk的mt.exe位置变了,而matlab还是按照老的路径找,肯定找不到(原来在windows sdks下面,现在在windows kits下面).”(http://blog.csdn.net/macong01/article/details/41356081)
补充一下这个问题,我是希望进行C#和matlab混合编程,但是在matlab的deploytool的library compiler中没有.net frame选项,所以根据网上的说法,我需要run ‘mex -setup ’和 ‘mbuild -setup'. 现在我能正常run ‘mex -setup’,如果这样通过其他操作能达到让我把matlab 的.m function转化为.dll
的话这个问题也是解决了的。