我对matlab的mex函数非常有经验,但是我遇到的问题很难解决。无效的Mex函数
我收到类似这样的消息:
无效MEX文件 “mymex.mexw64”: 指定的程序无法找到。
通常,这个问题与丢失dll有关。 但是,我用依赖walker检查了几次,没有遗漏任何东西。
此外,我检查了“替代”软件,例如:ProcessMonitor,ProcessExplorer,CFF_Explorer ...等。我已经尝试了一切。
当我试图将旧的代码从Matlab2012迁移到Matlab2015时,问题就开始了。
在这个过程中:
- 我更新libmx,libmex到最新的版本(2015年)
- 改变QT版本到新版本(是的,我的MEX函数使用QT)
- 更改平台到v140(旧版本是v110,Visual Studio 2012)
我唯一的假设是某些使用了一些自定义* .lib文件的东西。这些lib文件在v110中编译,我使用的是v140。在我的发行版软件包中,我已经将这些dll包含在Visual C++可再发行组件包v110和v1 v1中。我不确定这是否可能,尽管源代码编译得很好。
我没有测试除去这些*的.libs,因为这将是相当痛苦的
我的问题是:
- 是我的假设是否有效?
- 有谁知道如何解决这个问题?
像这样:https://stackoverflow.com/questions/33659878/visual-studio-2015-v120-vs-v140 – guilhermecgs