matlab带GUI界面程序的打包发布

来源:互联网 发布:cherry mac键盘设置 编辑:程序博客网 时间:2024/05/16 01:35

matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab也提供了这样的工具。

1. 转化为c/c++程序并编译为.exe
先验证mcc是否可用,用matlab中的example验证即可
建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)
由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等
程序发布需要.exe、bin/、.fig

2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件
前两者已经在/matlab/extern/lib/win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径
另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同

3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布
以下通过注册表自动添加path路径
%--------------------------------------------------------------------------------------
Screen.Next(); -- 进入下一个屏幕
resultDialog = Dialog.Message("注意", "向环境变量中加入matlab数学库及图象库的安装路径?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if (resultDialog == IDYES) then --加入安装路径
 strPath = Registry.GetValue(HKEY_CURRENT_USER, "Environment", "path", true);
 if strPath ~= ""  then
  strPath = String.Concat(strPath, ";");
 end   
 strPathToAdd = SessionVar.Expand("%AppFolder%");
 strPathToAdd = String.Concat(strPathToAdd,"file://MATLAB6p5//bin//win32");  
 -- 如果路径中无该位置,则加入
 if String.Find(strPath,strPathToAdd) == -1 then  
  strPath = String.Concat(strPath, strPathToAdd);
  Registry.SetValue(HKEY_CURRENT_USER, "Environment", "path", strPath, REG_SZ);
 end 
end
%--------------------------------------------------------------------------------------

 
原创粉丝点击