MEX 文件 ‘lsd.mexw64‘ 无效: 找不到指定的模块。问题解决方法

问题描述

在跑MATLAB和C++混合编程的一个算法时,出现了如下错误:
MEX 文件 'C:\Project\final code\reference code\lsd.mexw64' 无效: 找不到指定的模块。
如下图所示:
在这里插入图片描述


原因分析

根据资料[1]的说法,*.mexw64文件无效可能的原因是缺少相关的*.dll文件,因此只需把缺少的*.dll文件复制到 *.mexw64 文件所在的目录下即可。
在这里插入图片描述
但是这些*.dll文件还是不够的,我们需要知道 *.mexw64 依赖的所有DLL文件。


解决方案

博客[2] 中给出了一个查找mex所依赖的dll文件的方法。

  1. 下载Dependency Walker (http://www.dependencywalker.com/
  2. 在Dependency Walker里面导入有bug的*.mexw64 文件,得到如下结果:
    在这里插入图片描述
  3. 发现缺少了 msvcp100.dllmsvcr100.dll 这两个文件(libmx.dll 在MATLAB的安装路径中可以找到),在网上(例如:DLL下载站)下载缺少的两个DLL文件。
  4. 将这两个文件放到 *.mexw64 文件所在的目录下,成功运行。
    在这里插入图片描述
  5. 如果还不行,再对这些依赖项(*.dll)挨个放到软件里查询这些 dll 文件的依赖项。

参考资料

  1. 解决 Invalid MEX-file ‘xxx.mexw64‘: 找不到指定的模块 的问题
  2. 解决Matlab: Invalid MEX-file
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyywxk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值