C++调用matlab 封装matlab代码方法
版本: linux系统的2016B版本的matlab(可以使用更高版本的matlab)
第一步:编写一个简单的matlab程序
第二步:在command window输入:deploytool 选择LIbrary Compiler ,如下图所示:
第三步:进入Matlab Compiler界面,选择c++ share Library,再点击+,选择 matlab文件
第四步:然后再点击package打包,设置prj文件的路径之后,就会出现如下图所示的界面。
第五步:如果出现以下界面说明打包成功。
注意:如果gcc版本不一致会给出警告,可以点击logfile文件查看信息,另外由于动态链接库的必须使用lib开头(正常应该是libxxx.so),这里是(xxx.so),所以也会给出警告。后续导入到进入打包好的文件夹,如下图。我们只要for_redistribution_files_only目录下面的.h 与 .so文件即可。记得把xxx.so重命名为libxxx.so
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();