MATLAB 编译器的使用
MATLAB 编译器的使用
MATLAB 编译器(相应命令为 mcc)可生成独立应用程序、库、COM 对象、Excel 插件,
218 MATLAB 实用教程
它根据目标类型生成合适的包装器文件。包装器文件包含编译后的应用程序和可执行对象类
型之间的接口,具有下面一些功能。
z 完成包装器指定的初始化和终止运行工作。
z 定义包含路径信息、加密密匙和 MATLAB 组件运行时(MCR)所需其他信息的数组。
z 提供传递接口函数。
MATLAB 编译器生成的组件技术文件(CTF)与最后生成的目标类型(可执行程序或库)是
独立的,包装器文件提供了与目标类型的必要接口。
1.环境配置
mcc 命令具有将 m 文件编译生成 exe 文件或 cpp 文件等许多编译功能,使用 mcc 命令之
前必须进行环境配置。mbuild 是 MATLAB 提供的常见编译命令,在命令窗口输入命令“mbuild
- setup”完成配置,配置时第一个问题可选“n”,编译器可选用“Microsoft Visual C/C++ version
6.0”。mex 的配置将在 11.5 节中讲述。
2.mbuild 命令
使用命令 mbuild 可对已有 C 文件或 C++文件进行编译,编译生成的 obj 文件可直接双击运
行。比如,要对文件 good.c 和 good.cpp 进行编译,可在命令窗口分别输入命令“mbuild – c good.c”
和“mbuild – c good.cpp”。
3.mcc 命令
使用 mcc 命令可生成独立可执行文件或 C 共享库。比如,根据文件 file1.m 和 file2.m 生
成独立可执行文件使用命令“mcc – m file1.m file2.m”,而根据文件 file1.m 和 file2.m 生成 C
共享库使用命令“mcc – l file1.m file2.m”。其他命令可参阅 MATLAB 自带的帮助文档。
4.使用实例
下面结合例子说明独立应用程序的生成方法。
(1)编辑 m 文件
用 MATLAB 程序编辑绘图程序 mytest.m,代码如下。
function mytest() % 定义函数
x=[0,1470,2205,2940,3675,4410,5145,5880,6615,7350];
%定义变量 x(静载曲线横坐标)为一维数组并赋值
y=[0.00,1.13,1.98,2.95,4.12,5.63,7.26,9.15,11.43,14.23];
%定义变量 y(静载曲线纵坐标)为一维数组并赋值
plot(x,y,'*',x,y,'k-') %绘制曲线,星号显示数据点
grid on; %坐标分格线
axis ij;
% 定义坐标原点左上角,横坐标值向右增大,纵坐标值向下增大
xlabel('荷载(kN)'); % 定义 X 轴名
ylabel('位移(mm)'); % 定义Y轴名
title('荷载-位移曲线'); % 定义图名
axis square; % 图形设置为方形
axis on; % 显示坐标轴上标记、格线和单位标志
uiwait(msgbox('静载曲线绘制完毕')); % 弹出消息对话窗口
close
将 mytest.m 文件保存在指定目录(如 E:\matlab_example\mytest),同时,将工作目录选
为该目录。在命令窗口执行命令“mcc -m mytest.m”后,将新增文件夹 mytest_mcr 及
mytest_mcc_component_data.c、mytest_main.c、mytest.ctf、mytest.exe 等相关文件。
第 11 章 编译器与外部接口 219
(2)测试应用程序
运行上述 mytest.exe 文件,弹出运行结果,如图 11-1 所示。

图 11-1 应用程序运行结果
(3)分发应用
MATLAB 编译器生成的独立应用程序可分发到其他机器(目标机器)运行(两台机器的
操作系统必须相同),操作步骤如下。
Þ 执行命令buildmcr,生成MATLAB组件运行时(MCR)库文档,MCRInstaller.zip将保
存在<matlabroot>/toolbox/compiler/deploy/win32 目录下(<matlabroot>为MATLAB7 安
装目录,下同),该目录下还有文件MCRInstaller.exe和unzip。
Þ 将下列文件打包并分发到目标机器指定目录:MCRInstaller.zip(Linux下MCR库文
档)、MCRInstaller.exe(Windows下自解压MCR库工具)、unzip(Linux下文件
MCRInstaller.zip解压工具)、mytest.ctf(组件技术文件)、mytest.exe(应用程序)。
(4)在目标机器上安装和运行
Þ 将上述打包文件粘贴到目标机器某一位置。
Þ 目标机器上解压打包文件,运行MCRInstaller.exe,将mytest.exe和mytest.ctf复制到应
用目录下(如C:\approot),添加目录<mcr_root>\runtime\win32 到用户系统路径
(<mcr_root>为MCR安装路径)。
Þ 运行应用程序
MATLAB 编译器的使用的更多相关文章
- matlab编译器和程序发布
如何把编写好的matlab程序转换成c/c++语言,如何编译m文件为可执行程序,如何在没有matlab配置环境的机器上运行你编译出来的可执行程序? 一:matlab的编译器设置 执行命令:mbuild ...
- MATLAB编译器
1. mcc filename.cpp 或者mcc filename.c 可以将cpp或者c源程序文件,编译为filename.mexw32(32位系统)或者filename.mexw64(64位系统 ...
- MATLAB和C语言混合编程-----Matlab7.0 编译器设置
(1) mex 命令设置 (a) 运行 Matlab ,在 Matlab 的命令窗口 (Command Window) 键入“ mex -setup ”命令后,按回车键,安装 Matlab 编译器: ...
- 【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 在我的上一篇文章[ ...
- MATLAB调用C程序、调试和LDPC译码
MATLAB是一个很好用的工具.利用MATLAB脚本进行科学计算也特别方便快捷.但是代码存在较多循环时,MATLAB运行速度极慢.如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行 ...
- 【matlab】MATLAB程序调试方法和过程
3.8 MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...
- [原创]Matlab之GUI生成EXE文件
近期因为项目需要,简化流程,写了一些Matlab程序,并配备上了GUI界面使其简单易用.然后问题来了,可移植性.使用Matlab生成EXE文件(可以封装很多的function),然后在一台安装有Mat ...
- MatLab 组件大全
MATLAB 矩阵实验室 7.0.1 Simulink ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C代码(五)完整过程加示
如下为本人亲证代码: 一: 编译器的安装与配置(环境不同,显示结果不同) 要使用MATLAB编译器,用户计算机上应用事先安装与MATLAB适配的以下任何一种ANSI C/C++编译器: 5.0.6.0 ...
随机推荐
- ios 创建sdk与demo同一个工程
思路摘要: 步骤1:创建一个文件夹用来放该项目 步骤2:设置工程工作区间 步骤3: 创建广告sdk项目 步骤4:创建广告sdkDemo项目 步骤5:配置一些文件 步骤6:将sdk导入到demo中进行 ...
- 《Head First 设计模式》:适配器模式
正文 一.定义 适配器模式将一个类的接口(被适配者),转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 要点: 适配器实现了目标接口,并持有被适配者的实例. 适配器使用被适配者的方 ...
- 多线程的指令重排问题:as-if-serial语义,happens-before语义;volatile关键字,volatile和synchronized的区别
一.指令重排问题 你写的代码有可能,根本没有按照你期望的顺序执行,因为编译器和 CPU 会尝试指令重排来让代码运行更高效,这就是指令重排. 1.1 虚拟机层面 我们都知道CPU执行指令的时候,访问内存 ...
- linux驱动之内核多线程(一)
本文摘自http://www.cnblogs.com/zhuyp1015/archive/2012/06/11/2545624.html Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进 ...
- Alpha阶段项目复审(鸽牌开发小分队)
团队:鸽牌开发专业小分队 项目:必备记 集合帖:集合帖 项目复审: 团队名字 项目链接 优点 缺点和bug报告 最终名次 歪瑞古德小队 海岛漂流 1.功能齐全,上手简单2.界面简洁美观3.想法新颖,可 ...
- 仓库ERP管理系统(springboot)
查看更多系统:系统大全,课程设计.毕业设计,请点击这里查看 01 系统概述 基于SpringBoot框架和SaaS模式,非常好用的ERP软件,目前专注进销存+财务功能.主要模块有零售管理.采购管理.销 ...
- Java面试题 200+
面试题包含的内容了十九了模块:Java 基础.容器.多线程.反射.对象拷贝.Java Web 模块.异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Cl ...
- idea使用技巧一常用快捷键
快捷键 功能 ctrl+x 删除行 ctrl+d 复制行 ctrl+n 查找类 ctrl+f 查找文本 ctrl+j 自动代码 ctrl+h 显示类结构图 ctrl+q 显示注释文档 ctrl+p 方 ...
- 03.AOF持久化机制配置与工作流程
一.AOF持久化的配置 配置文件redis.conf,AOF持久化默认是关闭的,默认是打开RDB持久化 appendonly yes 二.工作流程: 打开AOF持久化机制之后,redis每次接 ...
- Flink run提交参数
折腾了好几天,终于搞定了Flink run提交参数,记录一下. 背景: 之前一直报错,akka,AskTimeoutException,尝试添加akka.ask.timeout=120000s, 依然 ...