EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。# H& `' Q' S, h/ s, H" _! ^
, ?2 ]" K K' _3 {4 _ }! r
Matlab的Deploy Tools 可以方便的将matlab工程编译成 所支持的类型,例如 一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
[3 ~/ X5 q! \/ u; n% g , B7 U; t; ^8 A+ c; Y9 y7 c* b! I' v$ F
其原理就是先使用 MCC 编译器 根据你的m文件生成相应的 c语言文件以及数据文件,然后 在调用 C/C++编译器编译成可执行文件或者控件库。
8 h; j" r) i- k. E; O9 n: X
' ^" M0 T) h# z* B8 R3 w 在 Matlab 2007a 中 Deploy Tool其实是一个 MCC的前端界面(用MCC的命令行参数一样可以完成编译工作)
. O. e7 |3 F; ^2 B7 h m/ I下面是用Deploy Tool来编matlab工程。
: f; C: C/ T* k/ e6 C7 P# u n ! g) T# b8 x$ j7 M; `# [
首先创建 prj工程 ,从菜单中定位到 “New”-》“Deployment Project” 然后会提示选择类型
( G, l- V& z. D @: y* a9 X0 {" L+ T: Q
然后添加文件/ b: S* c; `- }$ J B
; ]8 H P& `2 e" a) i! H# h
接着你就可以编译了( ?2 _# p3 h6 b4 x9 i
$ ^, t* Z3 V0 x" O3 C
第一次编译会让你去选择C/C++编译器,运行 mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器,0 t) [1 E) g" ~2 g' @
然后让你给出选择,matlab自带了LCC编译器,不过可以使用 VC的编译器 。
1 @; s6 d& W5 l$ x/ s! e选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置: / F( [9 w8 X7 T2 `3 v0 w8 s
可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描: 9 o! @ j: R1 H! _6 U9 M
当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等
4 _; H! e+ j* F0 }4 K2 s) r% M* P& }9 ?5 y
不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝
. u: s" \% J6 f! r5 g) p0 a: m
; Y9 ]* J" F' {% L, ~ (MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe
% X- Y @1 j/ l2 z! Y% x. E, g( C# M9 T
到目标机器安装,然后就有了运行时环境,当然使用 Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选 “Include MATLAB Comptent Runtime(MCR)”: 0 d+ W# n. b, [* \& ^
并且包含你需要用到的资源文件,图片,html等等。4 b. L* ]) B: G' Z
) G W) n. L; i5 ~' n' Y
然后就可以打包发布程序了。 : U. h- k/ F- K I) ]: w' W
|