mcc命令概况

mcc是调用MATLAB编译器的MATLAB命令,可以从MATLAB命令行或DOS命令行发出mcc命令。[大谦MATLAB,dqmatlab点com]

1.编译器选项

可以给mcc指定一个或多个MATLAB编译器选项。大部分选项的名称只有一个字母,可以单独列出各选项,如

code.matlab
mcc –m –g myfun

-m实际上是一个宏选项,其中封装了打包和输出有关的多个选项。宏简化了更多通用的编译任务,使得不必手工组合多个选项来完成特定类型的编译任务。

2.组合选项

可以把不带参数的选项组合到一起,例如

code.matlab
mcc –mg myfun

带参数的选项不能组合,除非将选项和它的参数放在列表最后。例如,下面的格式是合法的

code.matlab
mcc –v –W main –T link:exe myfun   %选项单独列出
mcc –vW main –T link:exe myfun     %合并选项

下面的格式不合法

code.matlab
mcc –Wv main –T link:exe myfun

有一个以上的选项带参数时,只能在组合列表中包含这些选项中的一个,并且该选项必须位于最后。可以将多个组合列表放在mcc命令行中。

如果在mcc命令行中包含任何C或C++文件名,这些文件与编译器生成的任何C或C++文件一起直接传递给mbuild命令。

3.命令行中的冲突选项

如果使用冲突选项,编译器优先考虑最右侧的选项,例如

code.matlab
mcc –m –W none test.m

等价于

code.matlab
mcc –W main –T link:exe –W none test.m

本例中,有2个冲突的-W选项。编译器优先考虑最右侧的选项,即-W none,编译器不生成打包器。

1. mcc命令的变量列表

mcc命令的变量列表如表3-1所示。

表3-1 mcc命令的变量列表

选 项 描 述 说 明
-a path 将path添加到部署存档 如果指定了目录名称,则添加目录中的所有文件。如果使用了通配符,则添加所有跟通配符匹配的文件。
-b 生成跟Excel兼容的公式函数 需要MATLAB Excel插件编译器。
-B filename[:arg[,arg] ] 将mcc命令行的-B filename替换为filename的内容 文件应该只包含mcc命令行选项。这些是MathWorks包含的选项文件: -B csharedlib:foo(C共享库) -B cpplib:foo(C++库)
-c 生成C打包器代码 等价于-T codegen
-C 引导mcc不把可部署存档嵌入生成的二进制文件
-d directory 输出到指定的目录
-e 生成独立应用时控制MS-DOS命令窗口的外观 在-m选项的地方使用-e选项,只适用于Windows系统。使用-R选项生成出错日志。等价于: -W WinMain -T link:exe
-f filename 调用mbuild时使用指定的选项文件filename 推荐mbuild -setup
-g 生成调试信息
-G 同上
-I directory 添加目录到MATLAB文件的搜索路径
-K 如果因为出错导致编译过早地结束,指示mcc不删除输出文件 如果命令没有成功执行,mcc的默认行为是处理任何部分输出
-l 创建函数库的宏 等价于-W lib -T link:lib
-m 生成独立应用程序的宏 等价于-W main -T link:exe
-M string 传递字符串给mbuild 用于定义编译时间的选项
-N 清除所有的路径,只留一个最小的文件夹集
-o outputfile 指定最后输出文件的名称 添加近似的扩展名
-p directory 在顺序敏感的上下文中添加directory到编译路径 需要-N选项
-R option 为MATLAB运行时指定运行时间选项 option = -nojvm, -nodisplay, - logfile filename, -startmsg和- completemsg filename
-S 创建单个MATLAB运行时 对于泛型COM组件来说是默认项
-u 只为开发机器上的当前用户注册COM组件 只对泛型COM组件和微软Excel插件合法
-T 指定输出目标阶段和类型 默认时为codegen
-v 显示编译步骤
-w option 显示警告信息 option = list, level或level:string,其中, level = disable, enable, error, off:string或on:string
-W type 控制函数打包器的生成 type = main cpplib: lib: none com:compname,clname,version
-Y licensefile 检查MATLAB编译器授权时使用licensefile -Y标记只用于命令行模式 >>!mcc -m foo.m -Y license.lic
-? 显示帮助信息