近期因为项目需要,简化流程,写了一些Matlab程序,并配备上了GUI界面使其简单易用。然后问题来了,可移植性。使用Matlab生成EXE文件(可以封装很多的function),然后在一台安装有Matlab Runtime环境的电脑上运行,是一种不错的选择。

本文主要就我自己在GUI生成EXE文件上遇到的一些问题以及解决办法进行一个说明,希望可以帮助到有同样需求的人。

配置环境

  • Windows 10系统
  • Matlab 2013a
  • Visual Studio 2013

配置方法

打开Matlab,在命令行中输入

1
mbuild -setup

进行编译环境的配置,将会出现如下的界面。

1
2
3
4
5
6
7
Welcome to mbuild -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2013a/win64.html
 
Please choose your compiler for building shared libraries or COM components:
 
Would you like mbuild to locate installed compilers [y]/n?

输入y确认后观察是否有编译器的存在,我的一开始是没有的,如果你的有matlab自带的lcc,那么幸运的是,你不用麻烦安装别的编译器了,这个已经足够,可以搜索与之相关的文章了;不幸的是后面的可能就不适合你了,因为我最后是使用的VS的编译器环境。

如果你也没有任何的编译器,那么很好,可以接着和我操作了,输入Ctrl+C退出当前命令,然后重新输入mbuild -setup。选择n,可以看到,出现了如下的一些选项。

1
2
3
4
5
6
7
Select a compiler:
[1] Microsoft Software Development Kit (SDK) 7.1
[2] Microsoft Visual C++ 2008 SP1
[3] Microsoft Visual C++ 2010
[4] Microsoft Visual C++ 2012
 
[0] None

Matlab 2013a中居然没有我安装的VS2013,伤心。不过想来也是,没有是正常的,那么后续怎么办呢,按照其中的安装呗,2008SP1,2010,2012都可以。博主在这里选择了VS2010,同一个电脑是可以安装不同版本的VS哦。

在VS2010完成后,重新启动Matlab,然后再次输入这条指令mbuild -setup,但是这次我们选择y,进入如下的界面,这次就可以看到我们安装的VS2010环境了,Nice!然后一路正常设置就好。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Would you like mbuild to locate installed compilers [y]/n? y
 
Select a compiler:
[1] Microsoft Visual C++ 2010 in D:\Program Files (x86)\Microsoft Visual Studio 10.0
 
[0] None
 
Compiler: 1
 
Please verify your choices:
 
Compiler: Microsoft Visual C++ 2010
Location: D:\Program Files (x86)\Microsoft Visual Studio 10.0
 
Are these correct [y]/n? y
 
****************************************************************************
Warning: Applications/components generated using Microsoft Visual C++
2010 require that the Microsoft Visual Studio 2010 run-time
libraries be available on the computer used for deployment.
To redistribute your applications/components, be sure that the
deployment machine has these run-time libraries.
****************************************************************************
 
 
Trying to update options file: C:\Users\AirBird\AppData\Roaming\MathWorks\MATLAB\R2013a\compopts.bat
From template: D:\Program Files\MATLAB\R2013a\bin\win64\mbuildopts\msvc100compp.bat
 
Done . . .

至此,Matlab编译器配置完成。

生成EXE文件

在命令行中键入如下命令可以进行EXE文件的生成。

1
2
mcc -m myfile.m; % 只有.m文件时
mcc -m myfile.fig myfile.m; % .fig文件和.m文件一起时

但是,在运行生成的EXE文件时我们会发现有黑框的存在,这个黑框其实是作为控制台的存在,有什么信息可以打印到上面。但是很多时候我们在运行的时候不希望黑框的生成,那么该如何操作呢?这里只需要更改下命令就可以了,如下。

1
2
mcc -e myfile.m; % 只有.m文件时
mcc -e myfile.fig myfile.m; % .fig文件和.m文件一起时

其中-e是生成不带黑框的EXE程序,是不是很神奇。但是这里需要注意的是,-e的用法只适合VS的引擎。有关mcc的用法,可以help mcc或者doc mcc进行查阅。本文摘抄部分信息如下。

1
2
3
4
e Macro that generates a C Windows application on the Windows platform. On
non-Windows platforms, it is the same as the macro -m. This is
equivalent to the options "-W WinMain -T link:exe", which can be found
in the file <MATLAB>/toolbox/compiler/bundles/macro_option_e.

[原创]Matlab之GUI生成EXE文件的更多相关文章

  1. GUI生成exe文件

    gui如何生成exe文件: 已经有gui.m和gui.fig文件 1 安装编译器.已经安装好了vs10的. 2 设置编译器.在matlab命令行输入mex -setup,选择安装的c编译器 3 调用编 ...

  2. matlab GUI封装exe文件

    学习matlab过程中,有时有些程序处理数据时老是看着代码,也会觉得疲倦,那么要试一试matlab的GUI吗?我就是这么使用matlab的GUI制作一个小程序,并且使用matlab封装成了exe文件. ...

  3. matlab改变GUI和figure左上角图标的方法,并生成exe文件

    1. GUI左上角图标的更改,假设GUI的Tag为figure1,在其OpeningFcn里添加h = handles.figure1; %返回其句柄newIcon = javax.swing.Ima ...

  4. matlab 生成.exe文件 转

    本文链接:https://blog.csdn.net/qq_20823641/article/details/51863737 如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程 ...

  5. c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

    转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 . ...

  6. 如何解决exe4j生成exe文件后弹出提示信息

    使用exe4j生成exe文件时会提示以上一段信息,这个主要是没有注册导致的,在welcome to exe4j的右下角有一个注册信息的地方,去找个注册码,就OK了. 通用注册码:L-g782dn2d- ...

  7. vs2010如何生成EXE文件如何更改EXE程序图标

    vs2010如何生成EXE文件 F5启动调试后,进入下面路径查找: 我的文档\Visual Studio 2010\Projects\项目名称\项目名称\bin\Debug 如何更改EXE程序图标 其 ...

  8. pyinstaller生成exe文件失败

    我的python是3.6,目前pyinstaller并不支持,有网友建议在Github上下载源码,用pyinstaller_develop文件夹替换pyinstaller安装位置下同名文件夹.这样做之 ...

  9. 如何打包/运行jar包,及生成exe文件

    关于如何打包/运行jar包,以及生成exe文件.之前各种查询.博客,终于搞明白究竟是咋回事.记得还做过笔记的.今天要打包生成exe用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了 ...

随机推荐

  1. bash的操作环境[转]

          Bash Shell 的操作环境: 是否记得我们登陆主机的时候,屏幕上头会有一些说明文字,告知我们的 Linux 版本啊什么的, 还有,登陆的时候我们还可以给予用户一些信息或者欢迎文字呢. ...

  2. 【redis】 redis 创建集群时,Waiting for the cluster to join.... 一直等待

    redis 搭建集群时,一直join.... ./redis-trib.rb  create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1: ...

  3. CentOS 7 时间同步

    在做这个之前需要先搭建yum http://www.cnblogs.com/jw31/p/5955852.html 在做之前我们需要先安装ntp服务 yum install ntp -y vi /et ...

  4. 微信公众平台开发教程(八)Session处理

    微信公众平台开发教程(八)Session处理 在微信窗口,输入的信息有限,我们需要将一些信息分多次请求. 比如:在进行用户绑定时,我们需要输入用户的相关信息,比如:用户名.密码,或者姓名.电话号码,服 ...

  5. IE6与 javascript:void(0)

    遇到过几次这种问题,现在总结一下. 代码: <a onclick="window.location.href='http://www.google.com'" href=&q ...

  6. 国内首家VR虚拟现实主题公园即将在北京推出

    近期,美国“The VOID”.澳洲“Zero Latency”两大虚拟现实主题乐园让许多爱好者兴奋至极,门票据说都已经预约到明年2月!在如此巨大的商机面前,谁将抢到国内VR虚拟现实主题公园第一块蛋糕 ...

  7. SVM之SMO最小序列

    转载自:JerryLead http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html 11 SMO优化算法(Sequential ...

  8. gerrit: Error in POST /accounts/self/preferences

    转载:https://code.google.com/p/gerrit/issues/detail?id=3157 1. Migrated from 2.8.6.1 to 2.10 2. In UI ...

  9. 让background-color 无效

    { background-color: transparent; // 让背景透明,相当于背景颜色无效 }

  10. 华为OJ题目:扑克牌大小

    题目描述: 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A.2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):3  ...