EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。
% m m2 B- k2 N
6 q' w: s& x- U3 K: B/ b, n Matlab的Deploy Tools 可以方便的将matlab工程编译成 所支持的类型,例如 一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
6 P- |. P: `7 {* Q& G; ]; X$ B 1 r& c& j2 w+ Z3 Q: L% Y ?( g2 Q: y9 Q
其原理就是先使用 MCC 编译器 根据你的m文件生成相应的 c语言文件以及数据文件,然后 在调用 C/C++编译器编译成可执行文件或者控件库。
- M% D0 T6 [' _0 R% d7 v
; d: Y# V& p9 L8 Q, S! { 在 Matlab 2007a 中 Deploy Tool其实是一个 MCC的前端界面(用MCC的命令行参数一样可以完成编译工作)0 ]" [' b6 |7 t* i+ {- G' W
下面是用Deploy Tool来编matlab工程。
- o2 O+ m% z. ~; Z
) B T# Y: a6 y 首先创建 prj工程 ,从菜单中定位到 “New”-》“Deployment Project” 然后会提示选择类型
$ p+ N: g6 S. g% \! g
4 ^/ T; p! N/ b8 a3 [+ ? 然后添加文件* _" x' e9 }+ D* N. d" O
( C+ l3 B+ v' N
接着你就可以编译了
; a7 N! E; q# y. y5 S, T9 G+ y) \" G( r0 J9 ]6 ]# v o
第一次编译会让你去选择C/C++编译器,运行 mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器,
* q8 R" M7 h4 H4 H然后让你给出选择,matlab自带了LCC编译器,不过可以使用 VC的编译器 。
& N, I5 C" p) K+ U! p选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置:
4 R; C, m- P/ g7 [ Z* S可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描:
& i+ e( z; u8 y! o0 x4 B: E, t当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等
5 S" \1 I4 \2 h6 w0 ]! A1 {
( i( w; S( j/ B- b5 B' M' f不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝
, T4 T% O+ C* f. Z2 B0 |$ ~0 N
5 F+ ~) ` j1 |/ v (MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe
, P2 h# p$ ]2 v, u6 ?
" d; f/ m s* A8 F- M8 q$ |到目标机器安装,然后就有了运行时环境,当然使用 Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选 “Include MATLAB Comptent Runtime(MCR)”:
9 T' X/ h0 U) o
并且包含你需要用到的资源文件,图片,html等等。
6 r$ v/ Q, y# O5 A( u) L- D- t% L* X2 {4 G/ R
然后就可以打包发布程序了。
* g7 e( h5 \, T7 ]3 m: y% _ |