使用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)
解决方法多数为:将网上下载下来的文件 复制到MATLAB 的 bin\win64 的mbuildopts和mexopts两个文件夹下。
在此归纳一下替换文件:
matlab 2011b + 编译器VS2012
http://blog.csdn.net/macong01/article/details/41356081
Matlab2013a+ 编译器VS2013
http://www.ilovematlab.cn/thread-298097-1-1.html 4L
matlab2015b + 编译器vs2015
http://www.ilovematlab.cn/thread-298097-1-1.html 10L
2018.1更新:
因为本人没有试过是否能支持vs2010,但参考帖子
http://www.ilovematlab.cn/thread-298097-3-1.html 的23L提到
(你会看到mexopts文件夹下已经有很多类似的文件,只是版本是2015之前的:
msvcpp2008.xml和msvc2008.xml——支持vs2008
msvcpp2010.xml msvc2010.xml——支持vs2010
msvcpp2012.xml和msvc2012.xml——支持vs2012
msvcpp2013.xml和msvc2013.xml——支持vs2013
)
各位若是使用vs2010或是上述其他版本,可以试一下下载23L的mexopts.rar ,用上文类似的方法放入文件到合适的路径。