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 编译器的使用的更多相关文章

  1. matlab编译器和程序发布

    如何把编写好的matlab程序转换成c/c++语言,如何编译m文件为可执行程序,如何在没有matlab配置环境的机器上运行你编译出来的可执行程序? 一:matlab的编译器设置 执行命令:mbuild ...

  2. MATLAB编译器

    1. mcc filename.cpp 或者mcc filename.c 可以将cpp或者c源程序文件,编译为filename.mexw32(32位系统)或者filename.mexw64(64位系统 ...

  3. MATLAB和C语言混合编程-----Matlab7.0 编译器设置

    (1) mex 命令设置 (a) 运行 Matlab ,在 Matlab 的命令窗口 (Command Window) 键入“ mex -setup ”命令后,按回车键,安装 Matlab 编译器: ...

  4. 【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数

                  本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 在我的上一篇文章[ ...

  5. MATLAB调用C程序、调试和LDPC译码

    MATLAB是一个很好用的工具.利用MATLAB脚本进行科学计算也特别方便快捷.但是代码存在较多循环时,MATLAB运行速度极慢.如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行 ...

  6. 【matlab】MATLAB程序调试方法和过程

    3.8  MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...

  7. [原创]Matlab之GUI生成EXE文件

    近期因为项目需要,简化流程,写了一些Matlab程序,并配备上了GUI界面使其简单易用.然后问题来了,可移植性.使用Matlab生成EXE文件(可以封装很多的function),然后在一台安装有Mat ...

  8. MatLab 组件大全

    MATLAB                                                                    矩阵实验室 7.0.1 Simulink       ...

  9. Matlab与C/C++联合编程之Matlab以MEX方式调用C代码(五)完整过程加示

    如下为本人亲证代码: 一: 编译器的安装与配置(环境不同,显示结果不同) 要使用MATLAB编译器,用户计算机上应用事先安装与MATLAB适配的以下任何一种ANSI C/C++编译器: 5.0.6.0 ...

随机推荐

  1. elaticsearch

  2. 面试28k职位,老乡面试官从HashCode到HashMap给我讲了一下午!「回家赶忙整理出1.6万字的面试材料」

    作者:小傅哥 博客:https://bugstack.cn 目录 一.前言 二.HashCode为什么使用31作为乘数 1. 固定乘积31在这用到了 2. 来自stackoverflow的回答 3. ...

  3. Federated Learning: Challenges, Methods, and Future Directions

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1908.07873v1 [cs.LG] 21 Aug 2019 Abstract 联邦学习包括通过远程设备或孤立的数据中心( ...

  4. 【转】camera tuning

    chromatix项目必须包含有效的 ADC image.png filcker: 交流电照明灯发出的光会一定频率的抖动导致sensor图像出现行方向的水波纹,称之为filcker.目前主要的交流电频 ...

  5. neighbor和neigh_modify(转载)

    (转载:http://blog.sina.com.cn/s/blog_b48a7ac30102w4mg.html###) 以下取自:http://simulation.haotui.com/viewt ...

  6. java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

  7. W3C标准和语义化

    一.语义化的理解 根据内容选择合适的标签,便于开发者阅读,在写出更优雅的代码的同时让浏览器很好的解析. 目的 1.在没有CSS的情况下,页面也能呈现出很好的内容结构和代码结构: 2.有利于SEO:和搜 ...

  8. GPU虚拟机创建时间深度优化

    ​桔妹导读:GPU虚拟机实例创建速度慢是公有云面临的普遍问题,由于通常情况下创建虚拟机属于低频操作而未引起业界的重视,实际生产中还是存在对GPU实例创建时间有苛刻要求的业务场景.本文将介绍滴滴云在解决 ...

  9. 从request中获取文件流的两种方式,配置文件上传大小

    原文地址:https://blog.csdn.net/xyr05288/article/details/80692132

  10. UI自动化测试、接口测试等自动化测试策略

    今天跟大家介绍UI测试.接口测试.单元测试主要内容,以及每种测试花费时间讨论.UI测试[Selenium]UI测试是最接近软件真实用户使用行为的测试类型.通常是模拟真实用户使用软件的行为,即模拟用户在 ...