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 |
| -? | 显示帮助信息 |