Matlab+Deploy工具的使用--Matlab生成可执行文件
Matlab生成P文件及exe文件方法

1.Matlab生成P文件方法:P文件是对应M文件的一种预解析版本(preparsed version)。
因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二次执行时使用,即第二次执行时无需再解析),这无形中增加了执行时间。
所以我们就预先作解释,那么以后再使用该M文件时,便会直接执行对应的已解析版本,即P文件。
但又因为Matlab的解析速度非常快,一般不用自己作预解析。
只有当一些程序要调用到非常多的M文件时,如GUI 应用程序时,才会作预解析,以增加以后的调用速度。
P文件可以用来作保密代码之用,如果你给别人一个M文件,别人可以打开来看到你所有的代码和算法。
如果你的代码不想被别人看到,那可以给他P文件。
pcode函数也可以应用在M函数文件。
Matlab命令:pcodepcode funpcode *.mpcode fun1 fun2 ...pcode... -inplaceDescriptionpcode fun obfuscates (i.e., shrouds) M-file fun.m for the purpose of protecting its proprietary source code. The encrypted M-code is written to P-file fun.pin the current directory. The original M-file can be anywhere on the search path.If the input file resides within a package and/or class directory, then the same package and class directories are applied to the output file. See example 2, below.pcode *.m creates P-files for all the M-files in the current directory.pcode fun1 fun2 ... creates P-files for the listedfunctions.pcode... -inplace creates P-files in the same directory as the M-files. An error occurs if the files cannot be created.2.Matlab编译生成exe可执行文件1、首先要保证你的程序是函数型的,而不是脚本形式的。
Matlab编写的程序生成EXE可执行文件的方法

Matlab生成EXE可执行文件1、M文件生成可执行文件1.1、Run timeserver的配置执行这个命令要在命令提示符下进入%matlab%\toolbox\runtime\bin\win32目录。
输入:rtsetup -f %matlab%\bin\win32\matlab.exe –s **** 。
这儿****代表你输入的N个数字或者字母,它将作为未来开发的应用程序的密码用来识别不同的文件是否出自同一程序。
在正常情况下,执行完这居命令以后,dos不会有任何提示符。
1.2、编写在matlab中运行的程序1.3、编写配置文件把toolbox\runtime\下面的两个模板文件matlabrt_template.m,和pathdefrt_template.m文件修改程自己的matlabrt.m和pathdefrt.m文件。
1.4、编译生成p文件把你要编译的源程序放在toolbox\local目录下一个子目录中,然后把这个目录设为matlab的当前目录――一定要保证这一点。
在matlab中输入如下命令:[LOG, DEPFUNOUT, PCODEOUT] = BUILDP({‗matlabrt‘});如果出现BUILDP finished but there may be file(s) with either problem symbols or EV AL-like constructs. Check BUILDP log for details. 。
这是很正常的,很多时候都会出现这个提示。
输入:Depfunout{1}把它的内容拷到toolbox\runtime\oem\的list.txt中去(如果没有list.txt则新建).1.5、打包,发布退出matlab,打开命令提示符,到toolbox\runtime\oem下,执行packege。
按照它的提示先后输入matlab的目录,文件列表名称(list.txt),还有应用程序的名称。
matlab生成dll 分享

一、生成独立可执行的程序(exe文件)步骤
1. mex -setup; 选择编译器vc6.0
2. mbuild –setup;选择vc6.0
3.mcc -m filename;filename为已经存在的filename.m 。
4、安装MATLAB7\toolbox\compiler\deploy\win32目录下的MCRInstaller。
二、脱离matlab运行可执行程序
MCR是由matlab的运行环境,占用不到400M的对于用不同matlab版本生成的exe 文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。
MCR环境的设置文件存放目录如下:
\MATLAB\R2007a\toolbox\compiler\deploy\win32
文件名为MCRInstaller.exe。
可将其拷贝到自己的文件夹中。
在其它机器上运行exe文件前,首先安装matlab的运行环境。
在同一机器上可以并存不同版本的matlab环境。
Note: 将MCRInstaller.exe拷贝到你文件所在文件夹里,用打包程序来打包,生成安装文件,设定在解包过程中自动执行MCRInstaller.exe,同时将可执行文件的图标放在桌面。
matlab编译

MATLAB 编译器是用于将MATLAB 语言编写的函数文件编译成可独立执行的*.exe 文件(即可脱离MATLAB 环境的执行程序)的工具。
在安装MATLAB 时,通常也会安装相应版本的MATLAB Compiler。
以下是一些关于如何使用MATLAB Compiler 的步骤:
1. 打开MATLAB,然后在命令窗口中输入`mex -setup`。
2. 选择您要使用的C++ 编译器,如果您找不到编译器,可以输入`mex -setup -v` 或进入MATLAB 目录中的\bin\win64\mexopts 中查看支持的编译器xml 文件。
如果您找不到当前系统的编译器,可以进入MATLAB 官网下载对应的编译器的xml 文件。
3. 编写您的MATLAB 函数。
4. 使用`mcc` 命令将您的函数编译为可执行文件。
例如,如果您的函数名为`myFunction.m`,则可以使用以下命令将其编译为可执行文件:`mcc -o myFunction myFunction.m`。
5. 运行生成的可执行文件。
MATLAB编译器的使用

MATLAB编译器的使⽤MATLAB 编译器的使⽤MATLAB 编译器(相应命令为 mcc)可⽣成独⽴应⽤程序、库、COM 对象、Excel 插件,218 MATLAB 实⽤教程它根据⽬标类型⽣成合适的包装器⽂件。
包装器⽂件包含编译后的应⽤程序和可执⾏对象类型之间的接⼝,具有下⾯⼀些功能。
z 完成包装器指定的初始化和终⽌运⾏⼯作。
z 定义包含路径信息、加密密匙和 MATLAB 组件运⾏时(MCR)所需其他信息的数组。
z 提供传递接⼝函数。
MATLAB 编译器⽣成的组件技术⽂件(CTF)与最后⽣成的⽬标类型(可执⾏程序或库)是独⽴的,包装器⽂件提供了与⽬标类型的必要接⼝。
1.环境配置mcc 命令具有将 m ⽂件编译⽣成 exe ⽂件或 cpp ⽂件等许多编译功能,使⽤ mcc 命令之前必须进⾏环境配置。
mbuild 是 MATLAB 提供的常见编译命令,在命令窗⼝输⼊命令“mbuild- setup”完成配置,配置时第⼀个问题可选“n”,编译器可选⽤“Microsoft Visual C/C++ version6.0”。
mex 的配置将在 11.5 节中讲述。
2.mbuild 命令使⽤命令 mbuild 可对已有 C ⽂件或 C++⽂件进⾏编译,编译⽣成的 obj ⽂件可直接双击运⾏。
⽐如,要对⽂件 good.c 和 good.cpp 进⾏编译,可在命令窗⼝分别输⼊命令“mbuild – c good.c”和“mbuild – c good.cpp”。
3.mcc 命令使⽤ mcc 命令可⽣成独⽴可执⾏⽂件或 C 共享库。
⽐如,根据⽂件 file1.m 和 file2.m ⽣成独⽴可执⾏⽂件使⽤命令“mcc – m file1.m file2.m”,⽽根据⽂件 file1.m 和 file2.m ⽣成 C共享库使⽤命令“mcc – l file1.m file2.m”。
其他命令可参阅 MATLAB ⾃带的帮助⽂档。
Matlab生成.exe可执行程序

Matlab⽣成.exe可执⾏程序
由于在教学过程中需要演⽰Matlab程序,⽽教学机⼜未安装Matlab程序,因此有必要将Matlab程序⽣成.exe可执⾏程序,便于直接执⾏。
在Matlab中提供了Complier,可直接使⽤。
(⼀)什么是MATLAB Compiler?
它能够将你的matlab程序转换为⾃包含(self-contained)的应⽤程序和组件,这样你就可以将程序发放给你的终端⽤户,⽽且终端⽤户⽆需安装
Matlab就可以运⾏这些程序。
Matlab Compiler能够⽣成的应⽤或者组件包括下⾯这⼏类:
1、独⽴的应⽤程序
2、C和C++共享库(动态链接库,在Windows平台上是DLL,在Linux平台下是.so⽂件)
3、Excel插件
4、COM 和.NET对象
(⼆)MATLAB Compiler的构建过程
1、分析依赖关系
2、代码⽣成
3、创建归档⽂件(archive)
4、编译
5、链接
(三)执⾏过程
1、在Matlab的Command窗⼝下,可通过“help mcc”命令查看帮助
2、⽣成可执⾏程序:“mcc -m ××.m”,即可在当前⽬录⽣成××.exe程序
在当前⽬录⽣成可执⾏⽂件:
双击即可运⾏!
3、⽣成动态链接库:“mcc -l ××.m”,即可⽣成动态链接库。
Matlab--Matlab生成dll、库文件和头文件方法(win10+VS2015+Ma。。。

Matlab--Matlab⽣成dll、库⽂件和头⽂件⽅法(win10+VS2015+Ma。
MATLAB具有很⾼的计算性能,在该平台上很多算法易于实现,⽽有时需要使⽤C++调⽤Matlab编写的程序,可以将该函数编译成dll库⽂件,之后在C++中对其进⾏调⽤。
本⽂详细讲解在Matlab中将函数编译成库⽂件,并在C++中进⾏调⽤的⽅法。
Matlab编译⾸先,matlab中写好函数第⼀步:在matlab的命令⾏窗⼝中输⼊mex -setup,会出现以下界⾯。
第⼆步:点击界⾯的“mex -setup C++”,会出现如下提⽰。
以上两步说明Matlab的编译环境可⾏,并且是使⽤VS2015进⾏编译。
不同版本的matlab使⽤的编译器可能不同,请确保matlab配置的编译器与之后使⽤的C++环境保持⼀致。
第三步:对matlab的函数进⾏编译。
注意:这⾥只能对matlab的function进⾏编译,并不能对⼀般的.m脚本进⾏编译。
我们采⽤mcc的⽅式进⾏编译,命令如下:mcc -W cpplib:testmat -T link:lib testmat.m -C解释:-W是控制编译之后的封装格式;cpplib是指编译成C++的lib,如果需要编译成C的lib,就⽤lib即可,去掉cpp;cpplib后⾯的是需要⽣成⽂件的⽂件名,是⾃⼰取的,我们取名为testmat;-T表⽰⽬标,link:lib表⽰要连接到⼀个库⽂件的⽬标,⽬标的名字即是.m函数的名字。
其他具体含义可以通过mcc –help命令查看,注意参数的⼤⼩写。
第五步:等待matlab进⾏编译,这个过程可能需要⼏分钟。
编译完成后的命令⾏显⽰如下信息:需要⽤到的⽂件只有四个:testmat.ctf,testmat.dll,testmat.lib,testmat.h。
PS:使⽤上述⽅法时,我第⼀次成功了,后边同样的操作⼀直失败,报错如下图:查了很久也没有找到原因,在Matlab Answers⾥看到⼀个问答,有个回答如下:⼤概意思就是把主编译⽂件.m放在matlab主程序⽂件夹内(我试了不⾏..),或者使⽤deploytool,这个⼯具可以⽣成特定⽂件夹内.m⽂件dll等库的功能。
将matlab程序编译成exe文件并打包的最简单方法

将matlab程序编译成exe文件并打包的最简单方法将matlab程序编译成exe文件并打包的最简单方法1、设置编译器>> mbuild -setup[1] Lcc-win32 C2.4.1[2] Microsoft Visual C++6.0[3] Microsoft Visual C++ .NET 2003[4] Microsoft Visual C++ 2005[5] Microsoft Visual C++ 2005 Express Edition[6] Microsoft Visual C++ 2008[0] NoneCompiler:6(这里你选择你使用的编译器) ***********************************注意:如果你写n之后,显示如下:[1] Lcc-win32 C2.4.1[0] None你就选1,正常设置下去。
等结束之后,再重新开始输入:>> mbuild -setup……这次应该会显示全部。
(我遇到这种情况)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(2)设置编译器前面我选择了6([6] Microsoft Visual C++ 2008),回车后,显示如下: \ProgramFiles\Microsoft Visual Studio9.0,but that directory does not exist on this machine.Use C:\Program Files\Microsoft Visual Studio9.0 anyway [y]/n? n(我填的是n,原因后面说)我电脑里面已经装了VC++2008,但我的VC++2008不装在这个目录下,需要我告诉电脑VC++2008的位置,所以填N。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab Deploy工具的使用--Matlab生成可执行文件
通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。
Matlab的Deploy Tools 可以方便的将matlab工程编译成所支持的类型,例如一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
其原理就是先使用MCC 编译器根据你的m文件生成相应的c语言文件以及数据文件,然后在调用C/C++编译器编译成可执行文件或者控件库。
在Matlab 2007a 中Deploy Tool其实是一个MCC的前端界面(用MCC的命令行参数一样可以完成编译工作)
下面是用Deploy Tool来编matlab工程。
首先创建prj工程,从菜单中定位到“New”-》“Deployment Project” 然后会提示选择类型
然后添加文件
接着你就可以编译了
第一次编译会让你去选择C/C++编译器,运行mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器,
然后让你给出选择,matlab自带了LCC编译器,不过可以使用VC的编译器。
选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置:
可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描:
当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等
不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝
(MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe
到目标机器安装,然后就有了运行时环境,当然使用Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选“Include MATLAB Comptent Runtime(MCR)”:
并且包含你需要用到的资源文件,图片,html等等。
然后就可以打包发布程序了。