MATLAB编译器中,如何用mcc命令编译M文件
若将M文件作为输入,通过使用不同的选项命令,可以得到不同的目标文件。对于单个M文件来说,已经能够处理了,下面将为用户讲解如何多个M文件一起编译。
建立可独立运行应用程序的最简单的方法就是建立一个或多个M文件或MEX文件,而不用自己写C源代码。写M文件利用MATLAB解释器的简单方便的开发环境和强大的功能来调试程序。调试成功后再用MATLAB编译器把它转化为独立可执行程序,可以大大提高程序调试效率。需要注意的是,不要手工去修改编译器产生的C或C++代码,应该去修改M文件或编译器选项,因为对C或C++代码的任何改动,都有可能导致运行错误。如果一定要修改C/C++源代码,注意当再次用MATLAB编译器编译M文件时,对C/C++代码的修改将会被冲掉。
例22.5 把两个M文件marnk.m和main.m作为源文件来创建独立可执行程序。
文件1:mrank.m
function a=mark(x)
a=zero(x,1);
for k=1:x
a(k)=rank(magic(k));
end
文件2:main.m
function main
a=mrank(6);
a
文件mrank.m返回一个整型向量a,表示一个magic矩阵的阶,其中a=zero(x,1)用来帮助MATLAB编译器预留内存空间。main.m调用mrank函数并打印输出值。
要把这两个M文件编译成一个独立可执行程序。只需运行:
>> mcc -mc main mrank
-m选项调用MATLAB编译器产生适用于独立可执行程序的C源代码,-c选项指不调用mbuild指令功能。生成的C源代码文件如下:
main.c main.h main_main.c mrank.c mrank.h
其中main_main.c文件包含了一个C函数main,main.c和mrank.c文件中都包含了C函数mlfMain和mlfMrank。
然后再运行指令
>> mbuild main.c main_main.c mrank.c
就能生成独立可执行程序main.exe。
其实,可以用一条指令来把这两个M文件转化为一个独立可执行程序:
mcc -m main mrank
这一条指令完成了上面两条指令的功能,生成同样的文件。
如果要生成C++代码,只需在mcc指令后面加上-L cpp,把C编译器换为C++编译器即可。