如何让MatLab找到Visual C ++编译器?

时间:2016-02-25 05:14:13

标签: c++ matlab visual-studio mex

序言:我在写这篇文章的过程中找到了一个解决方案,这个问题是一个PITA并且有一个复杂的解决方案。因此,我觉得有必要离开这里帮助任何有这个问题的穷人。

我是MatLab的新手,我也不经常使用Visual C ++,所以请原谅我,如果这应该是非常明显的。

简短版本:我的计算机上安装了Visual C ++ 2013,但是当我运行mex -setup c++时,mex无法找到它。我得到以下内容:

  

>>mex -setup cxx

     

使用mex时出错

     

未找到支持的编译器或SDK。您可以安装免费的   MinGW-w64 C / C ++编译器;请参阅安装MinGW-w64编译器。有关更多选项,请参阅   http://www.mathworks.com/support/compilers/R2015b/win64.html

以下是完整的情况。

  • 操作系统:Windows 10 Home
  • 编译器:Visual Studio 2013(v120,最新版)
    • 我确认我可以使用此工具集编译和运行程序。
  • MatLab版本:2015b

我最初运行的是Visual Studio 2015,mex发现编译器就好了。但是,我很快发现Simulink与VS 2015不兼容,所以我不得不回到VS 2013,这就是我的问题开始的时候。

我已经尝试过以下网站以寻找解决方案:

然后我走了一个兔子洞。

  1. A very protracted mathworks.com answer that suggested other links。这导致我......

  2. Another mathworks.com answer这听起来像我的问题,并建议修补我的设置。事实证明我没有安装SDK 7.1。所以,我去安装,并得到了这个错误:

      

    无法安装某些组件。某些Windows SDK组件需要RTM .NET Framework 4 ...

  3. This Stack Overflow question询问此问题,并且针对已安装的.NET Framework,我遇到了Danilo Gadêlha完全相同的问题。

    我尝试了top answer,在删除了我能找到的任何版本的.NET框架的每一个引用之后,包括那些" Windows Features",I仍然无法安装。

    我尝试了next option,即使在安全模式下,RegEdit也不会让我更改下一个答案建议的值,所以这是一个破产。

    最后,我尝试了MandM's solution,其中终于解决了我的问题链。

1 个答案:

答案 0 :(得分:3)

我认为这是我的问题的根源:当我卸载Visual Studio 2015并安装Visual Studio 2013时,安装或注册表设置处于错误状态,并且mex无法找到Visual Studio 2013。

对我有用的解决方案:

  1. 安装Visual Studio 2013。
  2. As MandM answered

      

    卸载以下内容:

         
        
    • " Microsoft Visual C ++ 2010 x64 Redistributable"
    •   
    • " Microsoft Visual C ++ 2010 x86 Redistributable"
    •   
         

    在安装Windows 7.1 SDK之前,安装包会在安装过程中重新安装这两个。

    正如Robert Važan在评论中指出的那样:

      

    如果此解决方法仍然存在错误消息,请单击“确定”继续安装。这次装置会成功..

    我确实收到了此错误,但安装工作正常。

  3. 安装SDK 7.1 Patch,修复this mathworks.com answer上突出显示的问题。