当前位置: 首页 > article >正文

【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(运行时环境)。

主要功能:

  1. 生成独立的可执行文件:将 MATLAB 程序打包为 .exe 文件,用户无需安装 MATLAB,只需安装 MATLAB Runtime。

  2. 生成共享库:可以将 MATLAB 程序转换为 C/C++ 共享库(.dll.so),用于集成到其他编程环境中。

  3. 生成 .NET 组件:将 MATLAB 程序打包为 .NET 组件,便于在 .NET 环境(如 C# 或 VB.NET)中使用。

  4. 生成 Java 类:可以将 MATLAB 程序封装为 Java 类,并在 Java 应用程序中调用。

  5. Web 应用和企业部署:将 MATLAB 应用程序打包为 Web 应用程序,并与 MATLAB Production Server 结合,用于企业级部署。

  6. 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 才能运行。


http://www.kler.cn/news/316794.html

相关文章:

  • Linux文件IO(三)-Linux系统如何管理文件
  • 【基础知识】网络套接字编程
  • QT-MOC元对象系统详解
  • 【小程序】微信小程序课程 -1 安装与配置
  • 【2025】基于微信小程序的人工智能课程学习平台的设计与实现(源码+文档+解答)
  • 职业技能大赛-自动化测试笔记分享
  • while语句
  • CANdela/Diva系列8--如何生成0x27服务解锁的DLL
  • MySQL 数据库课程设计详解与操作示例
  • Java : 图书管理系统
  • ArcGIS Pro SDK (十四)地图探索 6 图形与工具
  • AIGC7: 高通骁龙AIPC开发者沙龙过程记录A
  • 力扣刷题之2398.预算内的最多机器人数目
  • Shelly实测天工的音乐创作功能,写了一首歌,来听听效果
  • 学习笔记JVM篇(四)
  • python教程修订版
  • Redis 集群策略详解
  • oracle查询历史操作记录
  • 行为型设计模式的全面解析
  • 中小企业体系技术抽象沉淀-异地灾备篇
  • Android中如何调用DLL文件
  • 通信工程学习:什么是VM虚拟机
  • 在交互式系统中,非剥夺是不是一个好的策略?为什么?
  • kettle从入门到精通 第八十六课 ETL之kettle kettle调用https接口忽略SSL校验
  • 设计原则模式概览
  • Java项目实战II基于Java+Spring Boot+MySQL的房屋租赁管理系统的设计与实现
  • 编写webpack插件自动上传sourceMap
  • MySQL高阶1831-每天的最大交易
  • 通过spring-boot创建web项目
  • 数据爬虫中遇到验证码的解决方法