【matlab】将程序打包为exe文件(matlab r2023a为例)
文章目录
- 一、安装运行时环境
- 1.1 安装
- 1.2 简介
- 二、打包
- 三、打包文件为什么很大
一、安装运行时环境
使用 Application Compiler 来将程序打包为exe,相当于你使用C编译器把C语言编译成可执行程序。
在matlab菜单栏–App下面可以看到Application Compiler
。
或者在App 设计工具里面也可以看到。
1.1 安装
查看是否安装
mcrinstaller
没有安装则按照提示安装即可,大小大概4G
左右。
compiler.runtime.download
完成:
1.2 简介
MATLAB Compiler
工具箱是 MATLAB 提供的一种工具,用于将 MATLAB 程序、函数、数据和应用程序打包为独立的可执行文件、共享库、Web 应用程序或软件组件,方便分发和部署给不具备 MATLAB 环境的用户。
使用 MATLAB Compiler 工具箱生成的可执行文件不需要 MATLAB 本身,但需要一个免费的 MATLAB Runtime
(运行时环境)。
主要功能:
-
生成独立的可执行文件:将 MATLAB 程序打包为
.exe
文件,用户无需安装 MATLAB,只需安装 MATLAB Runtime。 -
生成共享库:可以将 MATLAB 程序转换为 C/C++ 共享库(
.dll
或.so
),用于集成到其他编程环境中。 -
生成 .NET 组件:将 MATLAB 程序打包为 .NET 组件,便于在 .NET 环境(如 C# 或 VB.NET)中使用。
-
生成 Java 类:可以将 MATLAB 程序封装为 Java 类,并在 Java 应用程序中调用。
-
Web 应用和企业部署:将 MATLAB 应用程序打包为 Web 应用程序,并与 MATLAB Production Server 结合,用于企业级部署。
-
MATLAB Runtime:所有由 MATLAB Compiler 生成的应用程序都使用 MATLAB Runtime。这个运行时环境可以免费分发,允许在不安装 MATLAB 的机器上运行 MATLAB 应用程序。
常见用途:
- 应用程序打包:开发的 MATLAB 应用程序可以打包为独立的应用程序,方便分发给不使用 MATLAB 的用户。
- 企业部署:将算法转换为企业可以使用的形式,通过共享库或 .NET 组件在服务器端或客户端环境中使用。
- 代码保护:通过编译器可以保护 MATLAB 源代码不被直接访问或修改。
限制:
- MATLAB Compiler 并不能加速程序运行,它主要用于分发和部署。
- 打包的程序在运行时依赖于 MATLAB Runtime。
二、打包
打开MATLAB Compiler,选择要打包的程序,会自动添加所需函数、数据等,也可手动添加。
有2个选项:
- Runtime downloaded from web;
- Runtime included in package。
第一个是用户需要自己下载Runtime,用户运行打包后的exe,会先下载运行环境,然后才能使用。打包后的exe很小,几MB到几十MB左右。
第二个是把运行环境也打包进来。打包后的程序很大,1G左右。
打包输出目录:
第三个目录是你自己测试用的,你打包的电脑上是有Runtime的,它用的就是那个。
第一个目录是打包后用于发布的正式版。
第二个目录类似,但是App和测试的一样的,不包含运行环境,或者不包含下载运行环境的部分。这个可以用于程序更新,比如之前用户已经安装过运行环境,现在你的程序更新了,用户就可以下载这个。
示例,在没有安装matlab的虚拟机运行打包后的exe。
(1)将运行环境打包进exe:
文件大小1.19GB
和平时安装软件一样的。
运行没问题:
(2) 不打包运行环境:
文件大小:9.02MB
这个就需要用户下载运行环境了。
会检查运行环境,没有的话就会下载,我这个在(1)里面已经安装过了。
三、打包文件为什么很大
MATLAB 是一种高级矩阵编程语言,背后有很多复杂的矩阵操作、算法优化和可视化功能。
这些功能并不是直接在可执行文件中生成的,而是依赖于 MATLAB 本身的运行时环境。
MATLAB Compiler 只将 MATLAB 程序编译成字节码(类似于 Java 的字节码),然后依赖 MATLAB Runtime 来解释和执行这些字节码。因此,打包的 .exe 需要 MATLAB Runtime 才能运行。