matlab 错误使用 mex 未找到支持的编译器或 SDK。

 

matlab2014a和matlab2014b版本,在编译cpp文件时出现了 “错误使用 mex  未找到支持的编译器或 SDK。” 上网查找了一圈的解决方法,最后摸索出一条简单粗暴的路子,通过安装visual studio2010完美解决(注意版本)

出现这个问题的原因是MATLAB找不到适用的编译器。安装新的编译器或者让软件找到编译器才是正解,网上说的安装sdk或者修改变量也是这个原理。(使用 mex -setup -v可以查看寻找编译器的过程)

 

尝试过的方法汇总:

  1. 选择visual studio版本的时候,建议选择低一点的版本;安装过VS2015,无效。
  2. 修改<MatlabRoot>/bin/win64/mexopts文件夹下的MSVC......Xml文件,无效。(修改了就好像没有修改一样...)参考
  3. 安装sdk软件,安装过MinGW-w64 C/C++还有window的sdk编译器,失败。(安装MinGW-w64 C/C++按照指定路径安装设置环境变量,无效。      在安装window的sdk时要求时.Net Framework 4.0,奈何只有4.6及以上,用尽各种办法都不能把.Net Framework 换成4.0,失败。)参考
  4. 利用mex -setup -v检查已安装的编译器缺少的东西,并且安装,十分麻烦,卒。参考

以上方法仅仅是我个人尝试无效,写出来只是作为方法总结,针对个体差异,可按需采用。

 

------------------------------------------------------以下碎碎念,可以不看--------------------------------------------------------------

吐槽:也许使用的电脑骨骼惊奇,以上尝试统统失败。最后通过安装VS2010成果解决,真香(不能只追求高版本)。

附:mex -setup -v运行结果(最后一行:能够找到vs2010作为编译器):

>> mex -setup -v
详细模式已开。
... 正在查找编译器 'Intel C++ Composer XE 2011 with Microsoft SDK 7.1 (C)'...
... 正在查找环境变量 'ICPP_COMPILER12'...否。
找不到已安装的编译器 'Intel C++ Composer XE 2011 with Microsoft SDK 7.1 (C)'。
... 正在查找编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2008 (C)'...
... 正在查找环境变量 'ICPP_COMPILER12'...否。
找不到已安装的编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2008 (C)'。
... 正在查找编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2010 (C)'...
... 正在查找环境变量 'ICPP_COMPILER12'...否。
找不到已安装的编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2010 (C)'。
... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft SDK 7.1'...
... 正在查找环境变量 'ICPP_COMPILER14'...否。
... 正在查找环境变量 'ICPP_COMPILER13'...否。
找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft SDK 7.1'。
... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2010 (C)'...
... 正在查找环境变量 'ICPP_COMPILER14'...否。
... 正在查找环境变量 'ICPP_COMPILER13'...否。
找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2010 (C)'。
... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2012 (C)'...
... 正在查找环境变量 'ICPP_COMPILER14'...否。
... 正在查找环境变量 'ICPP_COMPILER13'...否。
找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2012 (C)'。
... 正在查找编译器 'Microsoft Visual C++ 2008 (C)'...
... 正在查找环境变量 'VS90COMNTOOLS'...否。
找不到已安装的编译器 'Microsoft Visual C++ 2008 (C)'。
... 正在查找编译器 'Microsoft Visual C++ 2010 (C)'...
... 正在查找环境变量 'VS100COMNTOOLS'...是('c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\')。
... 正在查找文件 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe'...是。
... 正在查找文件夹 'c:\Program Files (x86)\Microsoft Visual Studio 10.0'...是。
... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A' InstallationFolder...是('c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\')。
... 正在查找环境变量 'VS100COMNTOOLS'...是('c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\')。
... 正在查找文件 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe'...是。
... 正在查找环境变量 'VS100COMNTOOLS'...是('c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\')。
... 正在查找文件 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat'...是。
... 正在查找文件夹 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'...是。
找到已安装的编译器 'Microsoft Visual C++ 2010 (C)'。
... 正在查找编译器 'Microsoft Visual C++ 2012 (C)'...
... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 11.0...否。
... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 11.0...否。
... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 11.0...否。
... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 11.0...否。
找不到已安装的编译器 'Microsoft Visual C++ 2012 (C)'。
... 正在查找编译器 'Microsoft Visual C++ 2013 Professional (C)'...
... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0...否。
... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0...否。
... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0...否。
... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0...否。
找不到已安装的编译器 'Microsoft Visual C++ 2013 Professional (C)'。
... 正在查找编译器 'Microsoft Windows SDK 7.1 (C)'...
... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1' InstallationFolder...否。
找不到已安装的编译器 'Microsoft Windows SDK 7.1 (C)'。
... 正在查找编译器 'Microsoft Visual C++ 2010 (C)'...
... 正在查找环境变量 'VS100COMNTOOLS'...是('c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\')。
... 正在查找文件 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe'...是。
... 正在查找文件夹 'c:\Program Files (x86)\Microsoft Visual Studio 10.0'...是。
... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A' InstallationFolder...是('c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\')。
... 正在查找环境变量 'VS100COMNTOOLS'...是('c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\')。
... 正在查找文件 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe'...是。
... 正在查找环境变量 'VS100COMNTOOLS'...是('c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\')。
... 正在查找文件 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat'...是。
... 正在查找文件夹 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'...是。
找到已安装的编译器 'Microsoft Visual C++ 2010 (C)'。
MEX 配置为使用 'Microsoft Visual C++ 2010 (C)' 以进行 C 语言编译。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章