c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

时间:2021-11-20 15:11:48

转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html

首先必须知道联合编程需要知道的一些命令解释:

mcc 的作用是将 .m文件编译为 c/c++动态链接库文件,使你可以在 c/c++程序中使用 matlab的一些函数功能。mcc 也可以将.m文件编译为exe可执行文件。

mex 的作用是将 c/cpp文件编译为 .m  文件可以调用的库文件,在Windows操作系统里通常是以mexw32或mexw64为扩展名,让你可以使用 c/c++来扩展 matlab,即在matlab中调用C/C++编写函数的功能,达到增加新的功能或者加速原有程序的功能。

mbuild 的作用是将 matlab视为一个 c/c++编译器,使用mbuild可以将 c/c++编译为 exe可执行文件,特色在于可以调用 matlab的数学库和图形库,但这样需要使用 matlab提供的动态连接库才能运行。

注意:我之前输入mcc命令后,出现了Test checkout of feature 'Compiler' failed的问题,原因是matlab2014a没有破解,按照下面的链接解决:

http://blog.csdn.net/smilebluesky/article/details/42987985

--------------------------------------分割线-----------------------华丽转身-------------------------------

在做matlab和C++混合编程时要对系统进行设置。比如我要用deploytool生成c++的动态链接库(下面有图),必须先要运行mbuild -setup命令。

注意,我用的是matlab2014a,跟文中不同,具体的deploytool的编译过程如下:

命令行输入deploytool:选择 application compiler

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

然后,进入下面页面,在add main file里添加主要执行的.m文件,再在下面运行应用程序里添加辅助的.m文件,然后点击package,生成exe文件。

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

编译结束后,会生成三个文件夹:点击for_testing文件夹下的exe可执行文件,即可运行。

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

后面的工作就很简单了,新建个c++工程,把生成的ImageConvert.exe加到工程里,写上:

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

#include <windows.h>

int main()

{

system("ImageConvert.exe");

}

一次性运行通过。