如何为matlab设置C/C++编译器

How set C/C++ compiler for matlab?

本文关键字:C++ 编译器 设置 matlab      更新时间:2023-10-16

我已经阅读了关于这个问题的几个主题。。。但我还是搞不清楚。我有matlab 2013和"MS Visual C++2012 Redistributable"都安装在Windows 8中的x86/x64。当我在matlab中运行"mex-setup"时,会出现以下消息:

请选择用于构建MEX文件的编译器:

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

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

但建议的文件是用于安装Windows7的.NET4,我有Windows8。然而,尽管我安装了这个框架,mex-setup命令仍然不起作用。

这似乎仍然是一个没有直接解决方案的问题。我花了大量的搜索、阅读和试错才能让mex识别出一个编译器

简而言之,matlab 2013不支持windows 8 SDK,但windows 7 SDK不容易安装在windows 8上。

对我有用的东西:

win7 SDK没有安装在windows 8上,因为默认情况下,windows 8上已经安装了Visual C++2010 Redistributable的最新版本。您必须手动(从控制面板/programs/uninstal…)卸载所有版本的VC++2010可再发行(x86和x64)。

有关如何做到这一点的详细信息,请参阅Microsoft的这篇文章。

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


注:

我运行win8 32位,所以对我有效的可能不是每个人都完美。在我搜索这个主题的过程中,我还注意到许多人经常会遇到另外两个挫折:

  • 在安装win 7 SDK的过程中,没有安装.NET 4。=>这是因为.net4.5已经在windows8中提供了。再次卸载.net4.5,然后重新安装win7 SDK。(如果需要,您甚至可以在完成所有操作后重新安装.net4.5)。

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

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