[Development] Using mexFunctions with QT in Matlab 2014

Konstantin Ritt ritt.ks at gmail.com
Wed Jul 2 18:18:46 CEST 2014


/* a bit of sarcasm */ Not sure QuickTime ever needs this :P

Regards,
Konstantin


2014-07-02 19:00 GMT+03:00 "Hauke Kr├╝ger(IND)" <krueger at ind.rwth-aachen.de>:

> Hi everyone,
>
> I have created a mexFunction that allows to open QT dialogs etc in
> Matlab. What it does is to
> create a QT thread - which is not the main thread - and to allocate all
> dialogs within this thread.
>
> This principle works very well in Windows /Visual Studio but it does no
> longer work in Linux :
> Matlab 2014 comes along with the QT 4.8.xx libraries. If I load the
> mexFunction by calling the
> entry function, Matlab crashes. From the callstack I see that in the
> program flow, functions are addressed
> which are located in shared library libQt5Gui.so but as soon as some QT
> core functionalities are requested,
> a function is called which is located in libQtCore.so deployed in the
> context of QT4!
>
> It sems that in Microsoft Windows, each DLL is treated in a separate
> logical space making it impossible
> to call a function in the wrong library. In Linux, however, it seems
> that even when using shared libraries,
> all symbols are thrown into one pool of symbols and it is never sure
> which symbol is taken in a call.
> And there seem to be duplicate symbols in QT4 and QT5.
>
> Is there a chance to influence this behavior in Linux to achieve a
> behavior as that in Microsoft Windows?
> Does anyone have another idea for a work around?
>
> Ah, by the way, I tested also the LD_PRELOAD option to force use of
> Qt5Core library. In that case, Matlab
> crashes right after boot showing that it is the other way around: Matlab
> calls a QT4 function which finally
> ends up in libQt5Core.so.
>
> Thank you for any hints,
>
> best regards
>
> Hauke
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140702/86814b49/attachment.html>


More information about the Development mailing list