最近在用matlab 的mex 进行C/C++混合编程。2012a找不到vs2012编译器。。。
对于MATLAB 2014A以后的版本给改了配置文件描述方式(xml),使用 mex -v filenam帮你查找编译器
然而matlab 的版本太低(2014a版本以下、缺少配置文件),导致找不到VS 2012 vs2013等高版本 的编译器 。方法是:可以从高版本matlab提取配置文件(最高2013b)或者改配置文件。
64位配置文件目录:D:\Program Files\MATLAB\R2012a\bin\win64\mexopts
配置文件简单介绍
msvc110开头的文件对应Microsoft Visual Studio 11.0也就是VS2012
发现其中有很多编译选项。只要在该目录下添加文件:
msvc110engmatopts.bat
msvc110opts.bat
msvc110opts.stp
在matlab命令行下再次运行 mex -setup ,可以找到vs2012编译选项
只要在该目录下添加文件
msvc120compp.batmsvc120engmatopts.bat
msvc120opts.bat
msvc120compp.stp
msvc120opts.stp
在matlab命令行下再次运行 mex -setup ,可以找到vs2013编译选项
这些文件可以在参考链接中找到。参考:
文件打包:https://download.csdn.net/download/ls1300005/10328726Matlab 2012a 无法选择VS 2012作为编译器 的解决办法
unable to compile mexGPUExample
Visual Studio 2013 support for Matlab 2013a/b
官方配置文件地址
http://cn.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/44408/versions/1/download/zip
https://cn.mathworks.com/matlabcentral/fileexchange/44408-matlab-mex-support-for-visual-studio-2013--and-mbuild-
2014a找编译器地址https://cn.mathworks.com/matlabcentral/answers/120713-matlab-r2014a-and-visual-studio-professional-2013