C++调用matlab 封装matlab代码方法

版本:  linux系统的2016B版本的matlab(可以使用更高版本的matlab)

第一步:编写一个简单的matlab程序

第二步:在command window输入:deploytool 选择LIbrary Compiler ,如下图所示:

C++调用matlab 封装matlab代码方法

第三步:进入Matlab Compiler界面,选择c++ share Library,再点击+,选择 matlab文件

C++调用matlab 封装matlab代码方法

第四步:然后再点击package打包,设置prj文件的路径之后,就会出现如下图所示的界面。

C++调用matlab 封装matlab代码方法

 

第五步:如果出现以下界面说明打包成功。

C++调用matlab 封装matlab代码方法

 

注意:如果gcc版本不一致会给出警告,可以点击logfile文件查看信息,另外由于动态链接库的必须使用lib开头(正常应该是libxxx.so),这里是(xxx.so),所以也会给出警告。后续导入到进入打包好的文件夹,如下图。我们只要for_redistribution_files_only目录下面的.h  与 .so文件即可。记得把xxx.so重命名为libxxx.so

C++调用matlab 封装matlab代码方法

C++调用matlab 封装matlab代码方法

 

QT creator 调用封装的matlab方法

第一步:将封装好的xxx.h以及libxxx.so文件放到工程文件目录下

第二步:CMakeLists.txt文件增加如下配置

set(LIBMWM /usr/local/MATLAB/R2016b/runtime/glnxa64/)

include_directories( ${LIBMWM} )

# matlab
set(MATLAB_ROOT /usr/local/MATLAB/R2016b/)
include_directories(${MATLAB_ROOT}extern/include/)
target_link_libraries(${PROJECT_NAME} /usr/local/MATLAB/R2016b/bin/glnxa64/libmwmclmcr.so)
target_link_libraries(${PROJECT_NAME} /usr/local/MATLAB/R2016b/runtime/glnxa64/libmwmclmcrrt.so)

target_link_libraries(${PROJECT_NAME} /home/user/works/ ... /libxxx.so )

 

第三步:程序调用封装的xxx.h代码如下。

伪代码:

xxxInitialize();

xxx();

xxxTerminate();