C++ 如何设置C/C++;matlab编译器?

C++ 如何设置C/C++;matlab编译器?,c++,c,matlab,mex,C++,C,Matlab,Mex,我已经读过几个关于这个问题的话题。。。但我还是不知道。 我有Matlab 2013和“MS Visual C++ 2012可重新分配”,都是安装在Windows 8中的X86/X64。 当我在matlab中运行“mex-setup”时,会出现以下消息: 请选择用于生成MEX文件的编译器: 是否希望mex定位已安装的编译器[y]/n?y 在此计算机上找不到支持的SDK或编译器。 有关支持的编译器的列表,请参见 但建议的文件是用于安装Windows7的.NET4,我已经安装了Windows8。然而

我已经读过几个关于这个问题的话题。。。但我还是不知道。 我有Matlab 2013和“MS Visual C++ 2012可重新分配”,都是安装在Windows 8中的X86/X64。 当我在matlab中运行“mex-setup”时,会出现以下消息:

请选择用于生成MEX文件的编译器:

是否希望mex定位已安装的编译器[y]/n?y

在此计算机上找不到支持的SDK或编译器。 有关支持的编译器的列表,请参见


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

这似乎仍然是一个没有直接解决方案的问题。我花了大量的搜索、阅读和反复试验才得到一个被mex认可的编译器

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

对我有用的是:

<> P> > WIN7SDK不安装在Windows 8上,因为Windows 8上默认安装了VisualC++ 2010可重分发的更新版。您必须手动(从控制面板/程序/uninstal…)卸载所有版本的VC++2010可再发行版(x86和x64)

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

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


注: 我在Win32 bits上运行,所以对我有用的东西可能并不适合所有人。在我搜索这个主题的过程中,我还注意到许多人经常会遇到另外两个挫折:

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

  • 一旦所有的东西都安装好了,mex很高兴地找到了编译器,编译过程中就会出现一个关于缺少
    ammintrin.h
    的错误。您可能需要安装MS VisualStudioC++ 2010 Express,然后升级到SP1。在本例中,请遵循本文中非常详细的说明

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