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文件
前两者已经在matlabexternlibwin32mglinstaller.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
%--------------------------------------------------------------------------------------
Trackback:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=1359042