EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。
( ]5 Y5 C! k- Q; l% A+ L3 k/ r0 d" Q& W) i( c6 b
Matlab的Deploy Tools 可以方便的将matlab工程编译成 所支持的类型,例如 一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
$ g1 U6 L$ x6 ~9 j
. q7 A! e9 `& a F8 C" Z; I9 ~ 其原理就是先使用 MCC 编译器 根据你的m文件生成相应的 c语言文件以及数据文件,然后 在调用 C/C++编译器编译成可执行文件或者控件库。, s' G% k( \. J U$ R
, a" k$ G: r0 a6 h$ D) b3 z6 _; Z, }! z5 W 在 Matlab 2007a 中 Deploy Tool其实是一个 MCC的前端界面(用MCC的命令行参数一样可以完成编译工作); f3 C$ i* U* S) M
下面是用Deploy Tool来编matlab工程。
- U# I1 [; F9 v$ W6 l7 L( M8 a 6 y6 S. L2 A2 ^6 ~9 p1 d! W
首先创建 prj工程 ,从菜单中定位到 “New”-》“Deployment Project” 然后会提示选择类型
7 V1 Y& g2 j' s( }, \* Z" r" s" M
然后添加文件
0 v. h, ^- L& a; E/ g
7 X5 G0 d* O$ \3 @ 接着你就可以编译了" G/ W O0 V+ V$ c7 `- t- B
G' f( k* X. d, `
第一次编译会让你去选择C/C++编译器,运行 mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器,, K" C6 \3 J+ b2 p# v: @( \2 V9 H
然后让你给出选择,matlab自带了LCC编译器,不过可以使用 VC的编译器 。
- h& z/ C' ^, }/ C; X6 h8 {" e选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置:
6 D( k, m5 U7 S/ u可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描:
7 H, V) ^) J, L7 z4 b# T' i# E当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等" y7 t% w+ J! k2 _' J1 P
: O. }( ^4 ^# Q. ~" I3 x
不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝 w* C+ E+ l: j, r8 f# t, V! C
) P! X' o% Z2 F- f
(MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe; n2 d9 X; N R \+ i% l! o& U
5 y0 f/ C6 u3 K
到目标机器安装,然后就有了运行时环境,当然使用 Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选 “Include MATLAB Comptent Runtime(MCR)”:
" |$ o' j$ i( n: O( e* g并且包含你需要用到的资源文件,图片,html等等。. D1 x( }. Y+ S( [
% r5 D8 v3 m5 O2 T3 V; e: K% f
然后就可以打包发布程序了。
. @7 V, i/ X$ c" t( {, u |