在QT中使用MATLAB共享库

Abo*_*nat 5 matlab qt

我将在我的QT程序中使用MATLAB共享库。

  • 操作系统:Ubuntu 15.10
  • MATLAB版本:MATLAB 2015b
  • QT版本:QT 5.5.1

我编写了一个简单的MATLAB函数。

function a = libcalsin(b)
a = b + 4;
end % end of function
Run Code Online (Sandbox Code Playgroud)

然后,我使用MATLAB Library Compiler生成.so和.h文件。

请看这张图片

因此,输出文件为:libcalsin.solibcalsin.h。我将这些文件复制到我的QT项目中,然后使用QT Creator的“添加库”功能将libcalsin库添加到我的QT项目中。因此,以下几行会自动添加到我的.pro文件中:

unix:!macx: LIBS += -L$$PWD/./ -lcalsin
INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/. 
Run Code Online (Sandbox Code Playgroud)

在此步骤中,我安装了MATLAB 2015运行时引擎,并使用export命令添加了运行时库路径:

export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v90/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v90/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v90/sys/os/glnxa64:
Run Code Online (Sandbox Code Playgroud)

然后在我的.pro文件中添加以下行:

unix:!macx: LIBS += -L/usr/local/MATLAB/MATLAB_Runtime/v90/runtime/glnxa64/ -lmwmclmcrrt
INCLUDEPATH += /usr/local/MATLAB/MATLAB_Runtime/v90/extern/include
DEPENDPATH += /usr/local/MATLAB/MATLAB_Runtime/v90/extern/include
Run Code Online (Sandbox Code Playgroud)

但是,当我运行程序时,会遇到以下运行时错误:

An Error has occurred while trying to initialize the MATLAB Runtime.  
The error is: Fatal error loading library /usr/local/MATLAB/MATLAB_Runtime/v90/bin/glnxa64/libmat.so Error: /usr/local/MATLAB/MATLAB_Runtime/v90/bin/glnxa64/libicuio.so.54: undefined symbol: _ZN6icu_5413UnicodeString9doReplaceEiiPKDsii
Run Code Online (Sandbox Code Playgroud)