【发布时间】:2017-09-04 12:05:46
【问题描述】:
我对 matlab mex 函数非常有经验,但我遇到了一个很难解决的问题。
我收到这样的消息:
无效的 MEX 文件 'mymex.mexw64': 找不到指定的过程。
通常,此问题与缺少 dll 有关。 但是,我用dependency 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++ Redistributable Packages v110 和 v140 中。我不确定这是否可能,尽管源代码编译得很好。
我没有测试删除这些 *.libs,因为这会很痛苦
我的问题是:
- 我的假设有效吗?
- 有人知道如何解决这个问题吗?
【问题讨论】: