通过命令行可以知道生成的exe文件哪里有问题。
3、matlab GUI程序转换成exe可执行文件(转)
1).设置编译器:
在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:
Mbuild –setup, 按提示选择matlab自带编译器LCC。
2).将脚本编译为可执行文件:
如项目文件包含:gui.m, gui.gif, fun1.m。
在此路径下命令行输入:mcc –m gui.m,生
成:mccExcludedFiles.log,ReadMe.txt,gui.ctf,gui.prj,gui_main.c,gui_mcc_component_data.c,gui.exe。
其中:gui.ctf,gui.exe为脱离matlab环境运行必需的文件。
3).在未安装matlab的机器上运行可执行程序。
将R22007b\toolbox\compiler\deploy\win32中的
MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。
将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成
gui_mcr文件夹,包含程序运行所需的库。至此完成。
4).去除独立可执行程序运行时的“DOS黑窗口”。
以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。
matlba命令行输入:
cd(prefdir)
edit compopts.bat
此时compopts.bat打开,在文件最后添加:
set LINKFLAGS=%LINKFLAGS% -subsystem windows
如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。
另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同
Microsoft Visual C/C++:
set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS
/ENTRY:mainCRTStartup
Borland:
set LINKFLAGS=%LINKFLAGS% -aa
5).遇到某些函数不能使用的问题。
我的程序中用到vpa函数,运行gui.exe出现:undefined method or function 'vpa' for
input argument type of 'double'错误提示。而gui.m脚本在matlab环境可以运行。
原因:百度搜到的信息为:matlab不支持符号工具箱的编译。只好避开使用此函数。
4、Matlab画图及生成exe文件
1).画图
写个简单的.m文件是很Easy的,罗列下几个常用函数的使用方法
[示例1]:plot(X,Y,'b-','linewidth',2);
X,Y表示向量,分别代表X轴和Y轴,'b-'表示线条颜色和样式,'linewidth',2这两个参数表示线条宽度是2
[示例2]:subplot(221)或者subplot(2,2,1)
前两个数字表示子图布局,本例中2X2,第三个参数表示画在第几个区域中,先上后下,先左后右标记为1,2,3,4。
[示例3]:title('aa'), xlabel('x'), ylabel('y')
这个比较简单,标题,X轴,Y轴文字
2).生成EXE
Matlab支持将.m文件编译生成exe文件。方法如下:
a. 生成EXE:在Matlab中输入mcc -m
filename.m进行编译生成,这一步会在当前目录下生成C源码文件,并可能会询问采用何种编译器进行编译(Windows下推荐用VC的编译器)。
b.
运行环境:exe程序的运行可以脱离Matlab,但是必须安装Matlab的运行环境。MCRinstall.exe,位于安装目录的\toolbox
\compiler\deploy\win32目录下,将其复制到需要执行生成EXE的环境中,运行安装,并设置环境变量path,将
录>\runtime\win32添加到末尾(XP下应该会自动进行设置,不用添加^_^)。
c.最后将编译生成的*.exe , *.crt, *.prj文件复制到目标机器上,就可以运行了。