Matlab 报错:invalid MEX

     下载了一个基于VLFeate函数包的Matlab例程,运行时报出错误:
     Invalid MEX
      'F:\vlfeat\toolbox\mex\mexw64\vl_svmtrain.mexw64': 找不到指定的程序。

     查阅了许多网上的资料和论坛上的解答,对MEX文件有了更深的理解,并解决了这个问题。
     首先,出现这个问题的原因是:
            mex文件是matlab调用C函数的接口文件,是和平台有关的,下载下来的mex文件是文件作者在他的环境下编译好了的,虽然软件包的开发者考虑到了各种不同的平台并分别编译了mex文件,但是还是会有很多人会遇到编译器不能识别的问题。所以,想要我们的系统能够识别该文件,还需要在自己的系统中重新编译代码,生成新的mex文件(我这里是 vl_svmtrain.mexw64  )就能被识别了。但是你的系统必须要有VS之类的C编译器,如果没有的话参考其他文章下载,这里要多说几句的是,很多人会说我明明电脑里有VS++6.0或者是VS2013,为什么Matlab运行mex -setup找不到呢?matlab官网上有支持的编译器的列表,但是很多人忽略了版本问题,编译器最好不要和matlab版本相同或者比matlab版本更高,比如我用的matlab2013a,电脑上装的VS2013,最开始找不到Microsoft Visual C++ 2013编译器,后来下载了VS2010之后就两个都可以搜索到了。
     说了一大推,下面放具体步骤: 
     1、把工具箱或者库函数文件的目录加入matlab的工作路径中。如果使用的VLFeate直接运行\toolbox下的 vl_setup.m,如果不是则执行下面操作:
          命令行输入pathtool,添加工具箱或者库文件目录,保存好后退出。
     2、一般下载的工具箱或者文件夹内都有一个类似make.m的文件,运行它。具体的,如果你也是用的VLFeate的话,则运行toolbox下的vl_compile.m。这里遇到一个报错,应该是没有设置好编译器:


           参考字面意思,run mex -setup,跟着提示一步步走完就可以了。




     3、设置好之后,再运行make.m文件(我这里是vl_compile.m),大功告成。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值