EDA365电子论坛网

标题: matlab生成exe文件 [打印本页]

作者: mm58690    时间: 2018-8-6 17:01
标题: matlab生成exe文件
通常编写的matlab程序只能在装有matlab的机器上执行,但是没有安装matlab的怎么办呢?这个可以使用matlab的自带工具-Deploy Tool。
+ Q; A% k' D( j/ x: |9 @/ a1 w: S" Z/ k7 |9 @
   Matlab的Deploy Tools 可以方便的将matlab工程编译成 所支持的类型,例如 一般的Windows应用程序,Matlab for .NET/COM ,Matlab for Java,Matlab for Excel 等。
# ]; @1 x) |) p- D% R
1 ^6 F5 ^# r# }+ g    其原理就是先使用 MCC 编译器 根据你的m文件生成相应的 c语言文件以及数据文件,然后 在调用 C/C++编译器编译成可执行文件或者控件库。2 T4 h7 o9 i* W$ C- G* e6 J

+ t" a: ~  R  t8 K& ]    在 Matlab 2007a 中 Deploy Tool其实是一个 MCC的前端界面(用MCC的命令行参数一样可以完成编译工作)2 E9 |4 r4 M+ B* Q
下面是用Deploy Tool来编matlab工程。2 v  ?8 Z% s6 {/ ^
* m7 G' a" c( ]% f( F3 c
  首先创建 prj工程 ,从菜单中定位到 “New”-》“Deployment Project” 然后会提示选择类型; @' c1 ?2 m+ R' }% s6 n# k" T
5 t: A0 F4 a' o% S: o- o- q
然后添加文件2 B% Y" y3 t' `$ u( m
2 ~: R: ?  y9 M7 [4 G4 X- F
接着你就可以编译了
; h3 R& V; L( y- W% b( I+ C' s/ {% p3 G7 f
第一次编译会让你去选择C/C++编译器,运行 mbuild -setup 之后matlab会自动搜索系统所安装的C/C++编译器,: {$ m; X1 ^; ]* h6 b; y1 w
然后让你给出选择,matlab自带了LCC编译器,不过可以使用 VC的编译器 。
% b" x. U& n4 x3 ~2 y
选择好了之后你就可以编译了,编译之前你可以设置工程属性,例如通用设置:
7 W$ y+ I8 B% `: l3 c' C* _  K
可以指定生成的中间文件的路径,编译选项,等等,你还可以设置选择针对哪些工具箱进行扫描:
' _; g# C* U7 Z% f
当然你还可以手动设置C/C++编译器路径,头文件、库文件目录,警告等级等
7 g, S5 X/ i9 d) k( o
+ p7 l! }4 _3 l: G" `1 [不过想要你的程序在没有安装Matlab的机器上运行,还有一点要注意,就是Matlab编译出来的程序需要用到Matlab的一些包括但不限于数学、图形等动态链接库,这些是你的程序必要的运行时环境,你可以拷贝& x/ @5 J8 g6 g2 S

7 U1 ?/ T% R/ B* S- U2 R3 e (MatlabDIR)\ toolbox\\toolbox\compiler\deploy\win32\MCRRegCOMComponent.exe" U$ m7 {* f2 W5 `9 p
' J& @% _0 [- u, b1 H9 g) x
到目标机器安装,然后就有了运行时环境,当然使用 Deployment Tool工具可以设置自动打包这个运行时,具体在设置页勾选 “Include MATLAB Comptent Runtime(MCR)”:

8 e% [7 A9 |/ p+ Q" G  b. g并且包含你需要用到的资源文件,图片,html等等。
, }2 y& ~' D  |' i: _
" v3 a. l1 b  V+ F  O) m, U& q然后就可以打包发布程序了。

& t+ w6 }2 n1 N; H+ f8 Y1 n; v. H




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2