Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现

本文介绍了如何在Linux下使用GCC编译器和MATLAB的mcc工具,将MATLAB函数转换为动态链接库.so文件,并在C++代码中进行调用。首先在MATLAB命令行执行mex -setup和mbuild -setup设定编译器。然后编写MATLAB函数myFunc.m,通过mcc生成.so库文件。在C++代码中,利用生成的头文件调用MATLAB函数。编译完成后,安装MCR Installer以运行程序。文章提供了详细的步骤和参考资料。
摘要由CSDN通过智能技术生成
之前在这里这里调用了matlab自带的一些函数,是通过matlab引擎来实现的。那里调用的是matlab自带的函数,那么如果想调用自己写的.m函数该怎么办呢?其实很简单,原理类似,方法也不止一种。这篇笔记我先尝试通过mcc将.m函数编译成动态链接库供c++调用的方式。在另一篇笔记中还尝试了另一种途径:通过matlab引擎来实现其实,调用自己编写的m函数,只是多了一步将自己的matlab函数编译成动态链接库文件(也就类似自带的那种eigen.h和libeng.so)。这里练习了一个小例子,展示从c++中调用matlab里面的自己写的函数。

实验平台:ubuntu 12.04 + g++4.6 + matlab2012a

问题描述:
有一个c++程序main.cpp,和一个matlab函数myFunc.m。现在要做这件事:
1)从main.cpp中传递2个double类型的数值a和b到myFunc.m中
2)myFunc.m中求和(sum = a+b)
3)main.cpp中接收myFunc.m返回的和并输出。

思路:
1)设置matlab的编译器,使用gcc编译器。编译m文件成.so。
2)编译.cpp文件,编译时调用.so库(添加.so的路径到编译选项)。

步骤:
1)将自己的matlab函数(myFunc.m)编译成动态链接库

        (1) 设定编译器为gcc在matlab 命令行依次执行命令mex -setupmbuild -setup

>> mex -setup

    Options files control which compiler to use, the compiler and link command options, and the runtime libraries to link against.

    Using the 'mex -setup' command selects an options file that is
    placed in ~/.matlab/R2012a and used by default for 'mex'. An options 
    file in the current working directory or specified on the command line 
    overrides the default options file in ~/.matlab/R2012a.
 
    To override t
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值