近期因为项目需要,简化流程,写了一些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. powershell,系统学习的第一种脚本语言

    最爱的脚本语言之一.

  2. MyEclipse Spring 学习总结一 Spring IOC容器

    一.Spring IOC容器---- Spring AllicationContext容器 程序的结构如下: 1.首先在MyEclipse 创建创建Java Project 2.创建好后,添加spin ...

  3. Android stuido viewpagerindicator的使用

    Top Level Build.gradle buildscript { repositories { maven { url "http://dl.bintray.com/populov/ ...

  4. 电子面单纸打印时固定高度18cm,到底是多少px

    点评:A4纸竖向打印,html网页页面的宽度设置成多少?这个问题是我们大家所疑惑的,于是网上搜集整理下,希望可以帮助你们 最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 在公制长度单位 ...

  5. windows环境下,如何启动chromedriver

    java -jar selenium-server-standalone-2.41.0.jar -Dwebdriver.chrome.driver="C:\Program Files\Goo ...

  6. JavaScript常用函数和方法

    alert('Hello World!') //方法用于显示带有一条指定消息和一个 OK 按钮的警告框. //定义js函数 function Foo(name) { console.log(name) ...

  7. IOS框架研究之SDWebImage的原理以及使用流程

    SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. SDWebImage 支持异步的图片下载+ ...

  8. python 简单爬虫diy

    简单爬虫直接diy, 复杂的用scrapy import urllib2 import re from bs4 import BeautifulSoap req = urllib2.Request(u ...

  9. 50. Remove Duplicates from Sorted Array && Remove Duplicates from Sorted Array II && Remove Element

    Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such that e ...

  10. 63. Swap Nodes in Pairs && Rotate List && Remove Nth Node From End of List

    Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. For exam ...