将matlab中的函数编译成C++ 并打包在其他电脑上运行

来源:互联网 发布:手机淘宝积分怎么查询 编辑:程序博客网 时间:2024/06/03 17:42

本机环境:matlab2014a(64bit)+VS2012


第一步:准备好自己的matlab函数(这一步不需要多说吧)

我的函数如下:



第二步:选择编译器

在matlab中输入命令:mex -setup,出现以下内容,使用鼠标单击,为C++语言选择编译器




第三步:编译

编译有图形交互的方式和输入命令的方式,我们这里采用后者,直接输入如下命令:

mcc -W cpplib:CnnTrain -T link:lib Train_CNN.m

其中 CnnTrain 表示要生成的lib,cpp ,dll等文件的名字,Train_CNN.m是需要编译的函数文件名

编译之后获得的文件如下:


我们只需要其中的lib,h,dll文件。


第四步:在VS2012中调用编译好的文件

1.首先在新建一个空白的WIN32工程,我建的工程名字是C++ Train

2.组织环境,将编译生成的文件以及环境文件都包含进来:

   在工程根目录中添加文件夹MatlabToC++,并且在这个文件夹中新建lib和include文件夹


  将之前生成的CnnTrain.lib复制到lib文件夹中

  将  matlab安装文件夹\extern\lib\win64\microsoft中的mclmcrrt.lib和mclmcr.lib复制到lib文件夹中

  lib文件夹内容如下:

  

  将之前生成的CnnTrain.h复制到include文件夹中

  将 matlab安装文件夹\extern\include\win64中的头文件mwcomutil.h复制到include文件夹中

  将matlab安装文件夹\extern\include中的从mat.h往下的所有头文件复制到include文件夹中

  最后include文件夹内容如下:


 然后在工程中添加头文件路径以及lib路径

  VC++ Directories中设置如下



Link->Input中设置如下:



3编写程序如下

 

 并写上头文件

如果是64位matlab程序也需要进行设置成x64


先编译一次,肯定会提示缺少dll,然后将CnnTrain.dll添加到相应的Debug(Release)文件夹中

再编译一次,可以正常运行了。


第五步 在其他电脑上运行本程序,如何打包

其实第四步中我们已经将大部分环境所需的头文件以及lib打包到本工程中了

但是这还不够,要在其他电脑上运行本程序,必须在目标电脑上安装matlab官方提供的MSR

这部分请参见官方网站 https://cn.mathworks.com/products/compiler/mcr.html?refresh=true

0 0
原创粉丝点击