Mex function not updated after recompile

12 ビュー (過去 30 日間)
Martin
Martin 2011 年 8 月 9 日
コメント済み: Paul Rötzer 2023 年 4 月 15 日
I have a simple mex function, which calls another C++ function from a library. I compile the source with
mex -cxx mymexfunction.cpp -I/some/include -L/some/lib -lmylib
The mylib library is dynamic (.so) and is linked itself against some other libraries (boost, OpenCV and some more).
The problem I am having is that once I have called the function mymexfunction once, it will not get updated when I recompile the source code. I have tried
clear
clear all
clear functions
clear fun('mymexfunction')
munlock('mymexfunction')
unloadlibrary('mymexfunction')
...but nothing helps! I have to restart Matlab in order to be able to see the updated mexfunction. Even if I delete the compiled mex file and recompile, I still get the old version of the mex function (not on disk, but in memory).
All is fine if I don't link against mylib, but I have no idea what could be the culprit that prevents the update. The library is unfortunately too large and too interwoven to remove single modules one by one.
Are there some known conditions which could cause such problems?
  3 件のコメント
Martin
Martin 2011 年 8 月 10 日
Thanks for your suggestion, but unfortunately that does not help either.
Alec Jacobson
Alec Jacobson 2020 年 6 月 12 日
Suffering for the same problem even in 2020a...wish this would be fixed or at least a solution provided.

サインインしてコメントする。

回答 (1 件)

Jan
Jan 2011 年 8 月 10 日
If the mex-file is locked from inside by an mexLock, you have to unlock it from inside also: mexUnlock. You have to trigger this by a special input, e.g. nrhs==0 or similar.
  7 件のコメント
Alec Jacobson
Alec Jacobson 2021 年 7 月 17 日
correct.
Paul Rötzer
Paul Rötzer 2023 年 4 月 15 日
I struggle the same problem on Matlab 2022b on MacOSX (M1) but only when i compile from "outside" of matlab, i.e. when i use cmake build script. For functions which i build "inside" matlab the update works.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeWrite C Functions Callable from MATLAB (MEX Files) についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by