【问题标题】:How set C/C++ compiler for matlab?如何为 matlab 设置 C/C++ 编译器?
【发布时间】:2014-09-13 09:36:44
【问题描述】:

我已经阅读了有关此问题的几个主题...但我仍然无法弄清楚。 我在 Windows 8 中安装了 x86/x64 的 matlab 2013 和“MS Visual C++ 2012 Redistributable”。 当我在 matlab 中运行“mex -setup”时,会出现以下消息:

请选择您的编译器来构建 MEX 文件:

您希望 mex 找到已安装的编译器 [y]/n 吗?是的

在这台计算机上找不到受支持的 SDK 或编译器。 如需支持的编译器列表,请参阅
http://www.mathworks.com/support/compilers/R2013a/win64.html

但建议的文件是为 Windows 7 安装 .NET 4,我有 Windows 8。但是,虽然我安装了这个框架,但 mex -setup 命令仍然不起作用。

【问题讨论】:

    标签: c++ c matlab mex


    【解决方案1】:

    这似乎仍然是一个没有直接解决方案的问题。我花了很多时间搜索、阅读和反复试验,才让一个编译器被 mex 识别。

    简而言之,matlab 2013 不支持 windows 8 SDK,但 windows 7 SDK 不能(轻松)安装在 windows 8 上。

    什么对我有用:

    win7 SDK 未安装在 Windows 8 上,因为较新版本的 Visual C++ 2010 Redistributable 已默认安装在 Windows 8 上。您必须手动(从控制面板/程序/卸载 ...)卸载VC++2010 可再发行组件的所有风格(x86 和 x64)。

    有关如何执行此操作的详细信息,请参阅此 Microsoft article

    之后我可以安装 win7 的 SDK 并让编译器被 mex 识别。


    注意:

    我在 win8 32 位上运行,所以对我有用的可能并不适合所有人。在我对该主题的搜索过程中,我还注意到许多人经常偶然发现另外两个挫折:

    • 在安装 win 7 SDK 期间,.NET 4 没有安装。 => 这是因为 .net4.5 已经在 windows 8 中提供。再次卸载 .net4.5,然后重新安装 win7 SDK。 (如果需要,您甚至可以在一切完成后重新安装 .net4.5)。

    • 一旦安装了所有东西并且 mex 愉快地找到了编译器,在编译过程中就会出现关于缺少 ammintrin.h 的错误。您可能必须安装 MS Visual Studio C++ 2010 express 然后将其升级到 SP1。在这种情况下,请遵循这篇 Matlab central 文章中的详细说明。

    链接的最后一篇文章似乎提供了一个完整的解决方案,我没有在我的回答中首先提到它,因为在某些情况下(例如我的情况),只需要描述的部分设置,所以没有意义卸载/重新安装一堆东西。但是要做好准备,你可能不得不经历所有这些......

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 2013-06-06
      • 2011-07-04
      • 1970-01-01
      • 2017-08-16
      • 2013-11-21
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      相关资源
      最近更新 更多