【问题标题】:Invalid MEX-file '<myfile>.mexw64': <myfile>.mexw64 is not a valid Win32 application无效的 MEX 文件“<myfile>.mexw64”:<myfile>.mexw64 不是有效的 Win32 应用程序
【发布时间】:2013-06-20 22:05:18
【问题描述】:

在尝试运行 opencv sample matlab call 时,出现错误

无效的 MEX 文件“mypath\displayImage.mexw64”:mypath\displayImage.mexw64 不是有效的 Win32 应用程序。

编译时没有错误。在编译和运行简单的 helloworld 示例时也没有错误。

这可能是什么原因?为什么连文件名都显示为 64 时还需要 win32?

Matlab是2013a,VS是2012,都是64位的。

更新

我发现 2009 年的 this "solution" 说任何被调用的 DLL 都应该是 64 位的。

这是吗

(1) 现在是正确的,并且

(2) 在实践中可能吗?

如何判断调用的库是不是32位的?

【问题讨论】:

  • 你链接的opencv版本库是32位还是64位?
  • 我认为是的。我将LIB 变量设置为opencv\build\x64\vc11\lib。如何检查?
  • 尝试使用dependancy walker
  • 是的,但是从什么开始? Matlab.exe? :)
  • 你能从 mex 文件中走出来吗?

标签: visual-studio matlab opencv mex


【解决方案1】:

好的,我的 PATH 指向 %OPENCV_DIR%\build\x86\vc11\bin,这会覆盖任何 LIB 设置。

这是在运行时。

即当我修复PATH 值时,即使没有重新编译,程序也开始运行。

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 2019-11-15
    • 1970-01-01
    • 2013-12-07
    • 2013-11-03
    • 2017-04-16
    • 2012-07-03
    • 2019-03-02
    相关资源
    最近更新 更多