invalid mex-file 找不到指定的模块

应用其他人的一个Matlab & C++混合编程程序时遇到的问题,C++程序用到了OpenCV,在运行.m文件时遇到了“invalid mex-file 找不到指定的模块”的错误。在此简述解决方案与其它人提到可能的处理方法。

1. 确定编译器版本

在matlab命令提示行输入
mex -setup
点击
mex -setup C++
选择希望的编译器版本

2. 确保配置了OpenCV的环境变量。

这里用的是VS2013即VC12,程序使用的为64位,matlab也为64位,故建议配置OpenCV中对应中
...\vc12\bin
的环境变量。(尽管后来尝试改变vc版本也没有发生对应不上的问题)

此时运行生成.mexw64文件的编译程序和使用该文件的Demo程序都不会再出现问题了。该错误的发生原因主要是编译版本对应错误,以及环境的遗漏。

网络上其他人还给出了以下几点:

  1. 确保Windows\System32下有msvcp100.dll、msvcr100.dll文件,并将其复制到运行.m文件的路径下。
    (就是说VC12就要对应msvcp120.dll喽?)
  2. 将OpenCV的bin目录复制到运行.m文件的路径下,并在代码中
    addpath('bin');
    (个人认为只要环境变量配置正确Matlab就能够找到OpenCV的DLL)

本机环境:
Win10 64位,VS2013,Matlab2016a 64位,OpenCV 2.4.13(使用64位)

转载请注明出处:http://blog.youkuaiyun.com/u011185952/article/details/52984549

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值