簡體   English   中英

無效的Mex功能

[英]Invalid Mex-function

我對matlab mex函數非常有經驗,但是我有一個很難解決的問題。

我收到這樣的消息:

無效的MEX文件'mymex.mexw64':找不到指定的過程。

通常,此問題與丟失的dll有關。 但是,我檢查了依賴遍歷器幾次,沒有丟失任何東西。

另外,我使用“替代”軟件進行了檢查,例如:ProcessMonitor,ProcessExplorer,CFF_Explorer ...等。 我已經嘗試了一切。

當我嘗試將舊代碼從Matlab2012遷移到Matlab2015時,問題就開始了。

在這個過程中:

  1. 我將libmx,libmex更新為當前版本(2015)
  2. 將qt版本更改為新版本(是的,我的mex函數使用qt)
  3. 將平台更改為v140(舊版本為v110,Visual Studio 2012)

我唯一的假設是使用某些帶有自定義* .lib文件的文件。 這些lib文件是在v110中編譯的,而我正在使用v140。 在我的分發程序包中,我已經將dll包含在兩個Visual C ++可再發行程序包v110和v140中。 我不確定這是否可能,盡管源代碼可以很好地編譯。

我還沒有測試過刪除這些* .libs,因為這會很痛苦

我的問題是:

  1. 我的假設有效嗎?
  2. 有誰知道如何解決這個問題?

我自己想出了答案。 事實證明simulink在內部使用qt。 因此,來自我的自定義應用程序的Dll與simulink QT dll沖突。 兩者的名稱相同,但是simulink使用的QT版本略有不同。

QT指出,使用相同的主版本可以具有向后兼容性...但這並非如此,至少在matlab環境中並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM