Matlab 报错:invalid MEX

    xiaoxiao2021-12-12  13

         下载了一个基于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),大功告成。
    转载请注明原文地址: https://ju.6miu.com/read-900015.html

    最新回复(0)