[英]Invalid Mex-function
我对matlab mex函数非常有经验,但是我有一个很难解决的问题。
我收到这样的消息:
无效的MEX文件'mymex.mexw64':找不到指定的过程。
通常,此问题与丢失的dll有关。 但是,我检查了依赖遍历器几次,没有丢失任何东西。
另外,我使用“替代”软件进行了检查,例如:ProcessMonitor,ProcessExplorer,CFF_Explorer ...等。 我已经尝试了一切。
当我尝试将旧代码从Matlab2012迁移到Matlab2015时,问题就开始了。
在这个过程中:
我唯一的假设是使用某些带有自定义* .lib文件的文件。 这些lib文件是在v110中编译的,而我正在使用v140。 在我的分发程序包中,我已经将dll包含在两个Visual C ++可再发行程序包v110和v140中。 我不确定这是否可能,尽管源代码可以很好地编译。
我还没有测试过删除这些* .libs,因为这会很痛苦
我的问题是:
我自己想出了答案。 事实证明simulink在内部使用qt。 因此,来自我的自定义应用程序的Dll与simulink QT dll冲突。 两者的名称相同,但是simulink使用的QT版本略有不同。
QT指出,使用相同的主版本可以具有向后兼容性...但这并非如此,至少在matlab环境中并非如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.