我有一个Windows 10 64位系统,上面装有MATLAB 2013b。现在,我正在使用SDK 7.1编译器来编译c ++程序。由于它已经创建了“ XXX.mexw64”文件,因此效果很好。但是,当我运行该文件时,我收到错误消息:无效的MEX文件:找不到指定的模块。哪里可能出什么问题了?
我尝试使用各种位置的Visual Studio软件包的所有组合重新安装SDK编译器。
我已经使用了依赖遍历程序来查找缺少的内容,并且发现有成百上千的文件丢失了。我不可能全部替换掉吗?
最终(成功完成)创建的名为“ uhdinterface.mexw64”的MEX文件应该最终运行,不是吗?
答案 0 :(得分:0)
“找不到指定的模块”消息是MATLAB相当隐秘的方式,告诉您在路径上找不到所需的dll。 Dependency Walker将始终显示许多找不到的文件,但是重要的文件是顶级dll。找出哪个顶级dll不在您的路径中(那是您的系统PATH环境变量,而不是您的MATLAB路径),然后通过
添加 setenv('PATH',[getenv('PATH')';C:\Path\to\your\dll'])
。
您的mex文件被编译的原因是因为它已正确链接(在编译/链接时找到了必要的库),但是它仍然依赖其中的一些在运行时执行。