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 ...
随机推荐
- Spring源码阅读 ------------------- SpringFrameWork 5.2 +IDEA 部署
Spring作为JAVA学习者的必须学习和熟悉的框架,需要理解Spring的设计原理,核心设计模式,对于理解设计模式,面向对象的深入理解有着深远持久的影响,特此首先要做到本地部署源码开始,下面将介绍如 ...
- 轻松解除官方对博客后台设置页面3段html代码的限制:iframe alert flagcounter etc.的禁用
今天我发现我的flagcounter不能用了 iframe也不能用了,无奈╮(╯_╰)╭ 第一反应是Ctrl U viewsource看看源码出了什么问题 结果竟然是这样, 因为页首和侧边栏的html ...
- I帧B帧P帧
转载自:http://blog.csdn.net/abcjennifer/article/details/6577934 视频压缩中,每帧代表一幅静止的图像.而在实际压缩时,会采取各种算法减少数据的容 ...
- windows 下apache开启FastCGI
1.首先去(http://www.apachelounge.com/download/)下载一个合适的mod_fcgid 文件. 2.将解压后的文件改为mod_fcgid.dll 并复制到a ...
- ucore学习
1.启动操作系统的bootloader,用于了解操作系统启动前的状态和要做的准备工作,了解运行操作系统的硬件支持,操作系统如何加载到内存中,理解两类中断--"外设中断"," ...
- Java多线程_Semaphore信号量
概念: Semaphore是信号量,又称为信号灯,它可以控制某个共享资源可被同时访问的次数,即可以维护当前访问某一共享资源的线程个数,并提供了同步机制.当Semaphore的个数变成1时,即代表只允许 ...
- YOLO v3算法介绍
图片来自https://towardsdatascience.com/yolo-v3-object-detection-with-keras-461d2cfccef6 数据前处理 输入的图片维数:(4 ...
- 蒲公英 · JELLY技术周刊 Vol.19 从零开始的 Cloud IDE 开发
蒲公英 · JELLY技术周刊 Vol.19 你是否也会有想法去开发一个自己的 IDE 却苦于时间和精力不足,完成 Desktop IDE 却又被 Cloud IDE 的概念追在身后难以入睡,这样的两 ...
- Bellman-Ford算法 例题:P3371 单源最短路径
看到还没人用Bellman-Ford过,赶紧水一发 lz非常弱,求各位大佬轻喷qwq 洛谷题目传送门:P3371 0."松弛"操作 如果存在一条边\((u,v)\)通过中继的方式可 ...
- 人到中年的程序员,请提前准备好 Plan B
中年程序员的生存现状已经是老生常谈的话题了,有多老呢?十年前,就有一位名叫"johnfx"的程序员谈过这个话题,并且专门为此写了一篇文章.随着中年程序员生存现状的话题再次成为热点, ...