㈠ 如何将Matlab程序编译成exe文件
我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序
希望这些对你有用
如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
一、生成独立可执行的程序(exe文件)步骤
1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。
2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;
注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
4、安装<matlab path>\toolbox\compiler\deploy\win32目录下的MCRInstaller。
二、脱离matlab运行可执行程序
MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
<matlab path> \toolbox\compiler\deploy\win32
文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
在其它没有安装matlab的机器上运行exe文件前:
首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
如果没有,也可手动安装,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
消除运行MATLAB生成的exe程序的dos黑屏的办法
基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
方法一: 在命令窗口输入:
cd(prefdir)
edit compopts.bat
在打开的文件最后添加以下语句:
A.VC环境下:
set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
B.LCC环境下:
set LINKFLAGS=%LINKFLAGS% -subsystemwindows
㈡ MATLAB mex 找不到编译器
在使用MATLAB时,如果你遇到"mex找不到编译器"的问题,首先要明确的是,MATLAB需要一个C编译器来编译.mex文件,以便在MATLAB中运行这些文件。通常情况下,MATLAB会提示用户是否愿意选择安装一个C编译器。如果选择"y",MATLAB会列出所有兼容的C编译器,但有时LCC编译器可能无法满足需求,因为它只支持32位的MATLAB版本。
如果选择"n",MATLAB会显示所有兼容的C编译器类型,但你可能会发现某些编译器如VC6.0不再被支持,而SDK7.1可能会在某些情况下无法正确定位。
为了解决这个问题,可以尝试以下方法:第一种方法是如果你已经以默认选项安装了SDK7.1,可以尝试选择特定的选项来强制定位编译器;第二种方法是重新安装MATLAB,确保选择32位版本,这样会自带LCC编译器;第三种方法是选择一个合适的VS版本,下载并安装,然后重新配置MEX命令。
简而言之,编译器的作用是将高级语言(如C、C++、Java)转换为机器语言,以便计算机能够理解和执行。现代编译器的工作流程大致分为几个步骤:源代码输入,经过预处理器处理,然后由编译器转换为目标代码,最后由链接器生成可执行程序。
高级语言之所以重要,是因为它们使得程序编写、阅读和维护变得更加容易。而机器语言则是计算机可以直接运行的指令集。编译器的作用就是将高级语言的源程序翻译成机器代码,这样计算机就可以理解和执行这些程序。
对于像C#和VB这样的高级语言,编译器会生成中间语言字节码,运行时由通用语言运行库进一步转换成机器码,最终被CPU执行。这一过程使得编程更加高效和灵活。
㈢ MInGW-w64作为C编译器(我们需要安装的是TDM-GCC)
Simulink中使用S-function/S-function builder进行C代码嵌入时,Matlab官方推荐使用Mingw-w64作为C编译器,具体版本需根据Matlab版本而定。查询所需版本信息,可直接在Matlab帮助文档中输入"MinGW",文档会明确指出所需安装的版本。下载地址为:TDM-GCC Compiler - Browse /TDM-GCC Installer/Previous/1.1309.0 at SourceForge.net。
下载完毕后,进行正常安装,需确保安装路径中无中文字符或空格,推荐按照安装程序建议路径安装。安装后,通过在CMD中输入“gcc -v”确认安装成功,如版本为4.9.2,则已成功安装4.9.2版本的TDM-GCC-64。
为使TDM-GCC-64安装路径加入系统环境变量,请按照以下步骤操作:从“开始”菜单选择“计算机”,进入“系统属性”->“高级系统设置”->“高级选项卡”,点击“环境变量”按钮,新建系统变量MW_MINGW64_LOC,设置变量值为TDM-GCC-64安装路径,例如C:\TDM-GCC-64。关闭对话框后,再次关闭控制面板对话框。
最后,需将环境变量告知Matlab,确保Matlab能调用到TDM-GCC-64。操作方法如下:在Matlab命令行中输入“setenv('MW_MINGW64_LOC','C:\TDM-GCC-64')”和“mex -setup”。若命令行窗口出现成功配置提示,表明Matlab已成功配置C编译器。
版权说明:本文为CSDN博主“husujun”原创,遵循CC 4.0 BY-SA版权协议,转载时需附原文出处链接及本声明。
原文链接:Matlab R2016b安装TDM-GCC-64