在Matlab平台项目中,之前曾经碰到过这个问题——Invalid mex-file 找不到指定的模块。
.cpp .h和.dll放在不同的文件夹下,在.cpp中使用.h .dll都是使用的相对路径,通过mex test.cpp编译是可以成功的,但是在调用的时候就会出问题。(原因未知)
所以mexw64文件和.h .dll应该在同目录下,并且使用到mexw64库函数的.m文件也必须放在同一个目录下面,所以最后就是.m .mexw64 .h .dll文件都放到同目录下问题就解决了。
但这次碰到的问题是使用到的mexw64是给的现成的文件,并没有发现有别的附带文件。因为项目是从上一届学长手中接过来的,一开始项目目录很大有几百兆,慢慢的发现了工程目录下有许多无关的文件,后来我就把需要的文件都拿出来了经过所有功能测试也没问题,但是换到别的电脑上测试就报错了。

当遇到Matlab的Invalid mex-file错误时,问题可能出在.mexw64文件与相关依赖文件的位置。将.m、.mexw64、.h和.dll文件放在同一目录下通常可以解决问题。本文作者通过排查发现,问题在于项目依赖的ipp库的dll未随项目一起提供。确保所有必要的dll与mex文件在同一目录下可以避免类似问题。在使用mex文件时,最好包含所有相关依赖,以防止在不同环境下出现错误。
最低0.47元/天 解锁文章
1万+





