背景:已有MATLAB APP的.mlapp文件,但客户提出需要可以直接使用的exe文件。
要求:点开即用,无需下载MATLAB。使用者无法修改APP的代码。
一、环境配置
APP创建者:安装MATLAB R2023a,配置Application Compiler。
APP使用者:安装MATLAB Runtime R2023a。
- 关于版本
我在使用时为了保险起见,是建议使用对应版本的Runtime。并没有测试安装其他版本的是否会出错,有兴趣的可以自行测试。
- 关于安装包下载地址
网站:MATLAB Runtime - MATLAB Compiler - MATLAB
- 关于是否安装完成
双击exe文件,运行正常说明安装完成。
二、打包步骤
- 问题一:C动态链接库的头文件,在打包后的exe文件打开时始终报错。
我在网上找到最靠谱的相关文章就是:Calling Shared Libraries in Deployed Applications- MATLAB & Simulink- MathWorks 中国
- 解决方案:在MATLAB R2023a中的命令行生成原型文件,然后修改调用函数库的函数
详细解答:以我的代码为例
原来调用函数库的语句
if not(libisloaded('zauxdll')) % loadlibrary(library, header) loadlibrary('zauxdll.dll','zauxdll2.h'); end
生成原型文件:在命令行窗口输入
% loadlibrary(library, header, 'mfilename', 'mylibrarymfile'); loadlibrary('zauxdll', 'zauxdll2', 'mfilename', 'mylibrarymfile');
生成原型文件后,调用函数库
% loadlibrary(library, @mylibrarymfile) loadlibrary('zauxdll', @mylibrarymfile)
- 问题二:在加载过程动态链接库过程中,还是报错。
- 解决方案:在我使用的动态链接库zauxdll.dll在使用过程中,会调用zmotion库,所以在打包过程中也要把zmotion库打包进去。
三、使用步骤
把exe文件双击打开,即可使用。