MATLAB编译器:独立外部程序创建过程说明
独立外部程序或完全由M文件产生,或完全由C/C++文件产生,或由前两文件混合产生,但不能由MEX文件转换而得。当源码是M文件时,则它首先被M编译器翻译成C/C++源文件。然后,再对产生的C/C++码文件连同那些本来就是C/C++的源码文件一起再进行编译,并链接生成最终的可执行外部文件。得到的EXE文件可以独立于MATLAB环境运行,但是需要MATLAB提供的数学库和图形库的支持。MATLAB将所需的这些文件打包成mglinstalle.exe文件,并把此文件置于MATLAB\estern\lib\win32目录上。
注意:只要被编译文件中包含MEX文件,就不可能得到编译成功的独立外部程序。
要实现从M文件到独立外部应用程序的转换,也必须先对MATLAB编译器进行正确的设置。预配置包括两个过程:第一,根据外部编译器的类型、软件位置对MATLAB编译器进行设置,同时对MATLAB C 数学函数库进行选择;第二,利用MATLAB提供的标准文件对用户设置加以验证。
1.对M编译器mbuild应用程序的设置。
mbuild是MATLAB的一个脚本文件。它有以下几个功能。
·自动实现MATLAB编译器与外部环境适应的配置(由mbuild-setup实现)。
·在外部环境变化和用户需求变化时,实现配置的改变(也由mbuild-setup实现)。
·建立独立的外部应用程序。
就一般而言,mbuild指令除进行环境配置或改变配置而被单独使用外,其余功能的使用是在MATLAB编译器指令mcc指令引导下进行的。对于M编译器mbuild应用程序的设置,在本章的22.2.2小节已经为大家介绍过了,这里就不再重复了。
2.配置正确性的验证
验证分两步:第一步,验证mbuild应用程序;第二步,验证mcc程序。原始文件均取自MATLAB的自带文件。
(1)mbuild应用程序的验证:先将<matlab>\extern\examples\cmath目下的ex1.c文件复制到用户自己的工作目录,然后将此文件名改为my_ex1.c。
在MATLAB指令窗中运行以下指令:
>> cd d:\mywork % 把用户目录指定为当前目录
>> mbuild my_ex1.c % 在 d:\mywork 下生成 my_ex1.exe 文件
(2)mcc应用程序的验证:先将<matlab>\extern\examples\cmath目下的hello.c文件复制到用户自己的工作目录,然后将此文件名改为my_hello.c。
在MATLAB指令窗中运行以下指令:
>> mcc -p my_hello.m
(3)在DOS状态下验证mbuild、mcc工作正确性。