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

平时跑论文的里MATLAB代码很多都是调用了c的函数,然而然而就是在MATLAB里编译C这个小问题却困扰了我很久。

在matlab中编译C程序为matlab可识别的mex文件需要使用命令:  mex  filename.c 。在这之前需要时用命令:mex -setup C++ 来更改缺省的compiler为相应的C编译器。如果没有安装matlab支持的编译器就会报错:

错误使用 mex
未找到支持的编译器或 SDK。有关选项,请访问  http://www.mathworks.com/support/compilers/R2014a/win64

这时可以直接通过连接下载安装微软的SDK7.1。在安装时可选项中点选visual C++ compiler就可以了。

当然这是顺利的情况,我成功过一次。

但是后来换一台电脑,问题就来了,安装了SDK7.1还是报错,后来发现可选项visual C++ compiler是灰的,不能点选。提示是缺少.NET Framework 4.0的支持。可是我查看了一下,那台电脑有安装最新的.NET Framework,再安装会提示已安装最新版本,而且想卸载重装都不行,用用微软官方的Windows Install Clean-up都搞不定。后来知道,这是因为当初安装的时候没成功,有残留,这就恶心了。(要解决这个麻烦就是另外一个问题了,在这里就不赘述了)

还有一次不存在上述问题,成功安装了SDK7.1,但是还是不行。那次我用的是matlab 2014a 的破解版。这个就有点不讲道理了。后来看到很多人有同样的问题。这可能是网上广为流传的那个2014a的破解版本身的问题。所以遇到这种情况的朋友可以换一个版本的matlab试一下。

不过还是有其它方法解决的。那就换一个编译器,我选择的是TDM-GCC,Matlab本身也推荐这个。

大概步骤是:

第一步:下载TDM-GCC(注意看清是32位还是64位),TDM-GCC的安装路径不要包括空格; http://tdm-gcc.tdragon.net/download

第二步:新建环境变量MW_MINGW64_LOC,设置为TDM-GCC-64的安装位置;

第三步:在MATLAB命令行内运行命令setenv(‘MW_MINGW64_LOC’,folder),folder为TDM-GCC的安装位置,要加单引号; 最后,重启一下MATLAB;

时间: 2024-08-17 19:03:49

matlab 解决 错误使用 mex 未找到支持的编译器或 SDK的相关文章

msxml3.dll 错误'800c0005' 系统未找到指定的资源错误

索了一下,产生msxml3.dll 错误 '800c0005'有以下几种原因: 引用内容: 1.url不存在 2.防火墙问题 3.没有启用Web服务扩展的 4.msxml3.dll损坏了 以上几个原因,第一点url不存在-----我的url肯定是存在的,而肯该程序我以前用过没有问题,也没有更改过程序,所以肯定不是这个原因. 第二点至第四点就是服务器的问题了,可能服务器的配置更改. 问题2的解决办法:关掉防火墙或在防火墙中将SYSTEM32目录中的DLLHOST.EXE文件加为信任文件,允许进入和

java配置ueditor中解决“未找到上传文件”错误提示

ueditor是一个功能十分强大的在线文本编辑器,但是在ssh框架中,确切的说实在struts2中由于其拦截器需要对request,session对象进行重新封装,这个过程中会把request对象中保存的一些内容清空,所以会导致ueditor的上传功能获取不到需要上传的内容导致“未找到上传文件”的错误! 参考网上资料和自己实验,最终的解决思路是,重写struts2中的一个转换的类,然后配置struts2使用我们重写的这个类.由于我们的工程中可能会有其他的上传等功能,为了不影响其他功能的时候,还需

ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。解决方法!

[问题描述]调试基于ACCESS+ASP的网站程序的时候,遇到如下错误: ADODB.Connection 错误 '800a0e7a' 未找到提供程序.该程序可能未正确安装. /Inc/Function.asp,行 9 [原因分析]因为系统是64位的win7或win8.1所以会出现这个问题,解决方法如下: [解决方法]找到IIS应用程序池,“设置应用程序池默认属性”-->“常规”-->”启用 32 位应用程序”,设置为 True即可解决. ADODB.Connection 错误 '800a0e

对于vs2012弹出错误提示“未找到与约束”的错误消息的解决办法!

问题描述: 我是因为一不小心点击了QQ管家里面的自动更新补丁导致的,一般我是不会更新这些补丁的,更新之后就变成了这样! 提示为: 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService RequiredTypeIdentity Microsoft.VisualStudio.Text.ITextDocumentFactoryService匹配的导出     解决过程: 有两种办法: 第一种: 1.参考:

ASP.net MVC3 报错"未找到视图“Index”或其母版视图,或没有视图引擎支持搜索的位置 "的解决方法

注意添加MVC3视图不能直接在View文件下新建视图,而是在控制器的Index 右击添加视图,就会在View下面产生一个Product文件夹(包含Index.cshtml) 就可以解决这个问题. 具体如图: 参考:[ASP.NET MVC 小牛之路]Razor语法 ASP.net MVC3 报错"未找到视图"Index"或其母版视图,或没有视图引擎支持搜索的位置 "的解决方法

解决:未找到setenv命令

在Ubuntu12.04中配置python环境变量:setenv PATH "$PATH:/usr/local/bin/python",提示未找到setenv命令. 为什么呢?这是因为shell版本问题! Bourne Shell(即sh)是UNIX最初使用的shell,平且在每种UNIX上都可以使用.BourneShell在shell编程方便相当优秀,但在处理与用户的交互方便作得不如其他几种shell. LinuxOS默认的是Bourne Again Shell,它是Bourne S

搭建php环境时解决jpeg6 make: ./libtool:命令未找到

搭建php环境时解决jpeg6 make: ./libtool:命令未找到 [[email protected] jpeg-6b]# make; make install ./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c make: ./libtool:命令未找到 make: *** [jcapimin.lo] 错误 127 ./libtool --mode=compile gcc -O2  -I. -c ./cjpeg.c make:

升级CUDA版本导致VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件。。。。

VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件. E:\IGSNRR\dev\PhDThesisCode_CUDA\gtcg\gtcg.vcxproj : error : 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.5.props”.请确认 <Import> 声明中的路径正确,且磁盘上存在该文件. E:

oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义”错误的解决方案

导出oracle11.2.0.2的服务器的数据时,报"EXP-00003: 未找到段 (0,0) 的存储定义"错误.初步分析是由于数据表是空表导致该问题. Oracle 11G在用EXPORT导出时,空表不能导出 11GR2中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法:一. insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表.二. 设置deferred_segment_cr