MATLAB编译器mcc的选项标志
编译器的定义采用了大量的选项标志,通过指定相应的选项可以从同一个M源码文件出发,得到符合不同应用场合的不同目标文件。如要想了解mcc的所有选项标志,可在MATLAB命令窗口运行下面的命令:
>> mcc -?
该命令是查询mcc指令的所有选项。
(1)宏选项。结合使用合适的选项标志,可以对待编译文件完成不同要求的编译任务。利用宏选项可以完成基本的编译任务。实际上,每个宏选项都等价于若干其他选项的组合。
(2)控制选项。这类选项的作用在于可以控制编译器生成C/C++源码文件的结构。例如上述宏选项的-W。由该选项实现对所有生成的Wrapper函数类型进行控制。该选项中type的取值有5种:main——产生一个POSIX脚本main()函数;lib<string>——产生一个初始化和终止函数,用于编译器产生的函数被编译进一个大的程序,这一选项同样产生一个头文件,包含指定M文件所有函数的原型;<string>——成为产生的C/C++文件和头文件的基础文件名;com:<component_name>,<class_name>,<version>——从M文件产生一个COM对象;none——不产生包装文件,默认为none。
(3)编译器以及编译环境选项。这类选项用于对编译器以及编译环境进行相应的设置和定义。例如在默认的情况下,编译器会将创建生成的文件写至当前工作目录下,如果用户希望编译器将这些文件直接保存到某个特定的目录下,就需要在编译指令中添加-d directory。
(4)mex和mbuild的选项。如果编译指令中含有这类选项,编译器在调用编译工具mex或mbuild时,将这些选项一并传递给它们。
说明:
·用户可以通过MATLAB的在线查询或相应的帮助文档来获得关于这些选项标志的详细信息以及使用方法。
·在以上编译指令中,正体表示编译器的关键字,斜体表示可能因实际情况而不同或者存在几种不同的取值,大括号中的内容表示默认值。
(5)设置默认选项。如果在编译M文件时,要经常指定一些固定的选项,那么用户就可以考虑将这些常用的选项设置为用户自定义默认选项,存为mccstartup文件。该文件可以保存在当前工作目录下。
例22.2 将当前目录存在的一个文件shili.m利用M编译器将它转换为C++语言的源码文件,并要求将原M文件中的注释区内容作为所得C++源码文件的注释。
运行以下指令:
>> mcc -t -L Cpp -A annotation:comments shili
指令说明:
·上述指令等价于mcc:-tL Cpp -A annotation:comments shili。
·如果运行指令mcc -t -L Cpp -A annotation:comments shili -L –t,则将得到的文件是shili.c和shili.h,而不是shili.cpp和shili.h。这是因为该指令中选项-L被重复定义了两次,而编译器只能接受最后一次的定义。
·选项-t表示将M源码转换为C或C++的源文件。
·选项-A annotation:comments: type用来控制是否将原M文件所有语句、注释语句作为注释内容插入所得的C或C++源文件中去。其中type有三种取值:all、comments和none。