coder.make.BuildToolclass
包:coder.make
代表构建工具
描述
使用coder.make.BuildTool
和定义一个现有的默认coder.make.BuildTool
对象,或创建一个coder.make.BuildTool
对象。
使用默认BuildTool
对象,使用get和定义的方法ToolchainInfo
属性:
coder.make.ToolchainInfo.BuildTools
coder.make.ToolchainInfo.PostbuildTools
示例显示了得到和定义的方法是:
教程的例子:添加自定义工具链,MATLAB®编码器™构建过程教程
另一种获得和定义方法是创建新方法。一个例子显示了创建新方法出现在创建一个非默认BuildTool。
插图显示了默认的之间的关系BuildTool
对象和ToolchainInfo
。当你检查虚假目标
部分生成的makefile,之间的差别BuildTools
,PostbuildTools
,PrebuildTools
变得更加清晰。
prebuild
——只运行prebuild工具。构建
——运行prebuild后运行构建工具。的构建
生成构建产品
。postbuild
——运行postbuild工具在运行构建。所有
——构建和postbuild prebuild运行。构建过程使用Ctrl + B建造这条规则。清洁
——清理所有输出文件扩展名和导出文件扩展名的所有工具的工具链。信息
——扩展并打印所有宏在makefile中使用。
的coder.make.BuildTool
类是一个处理
类。
创建
创建一个h
= coder.make.BuildTool (bldtl_name
)coder.make.BuildTool
对象并设置它的名字
财产。
输入参数
bldtl_name
- - - - - -构建工具的名字
特征向量|字符串标量
构建工具名称,指定为一个特征向量或字符串标量。
数据类型:字符
|字符串
属性
命令
- - - - - -构建工具宏命令或命令
代表了构建工具命令使用:
一个可选的宏名,如:
CC
。系统调用(命令),开始构建工具,如:
海湾合作委员会
。
宏名和系统调用生成的makefile中一起出现。例如:CC = gcc
分配一个值,这个属性是可选的。
您可以使用以下方法命令
:
属性:
GetAccess |
公共
|
SetAccess |
公共
|
指令
- - - - - -工具相关的指令
定义了任何工具相关的指令,如- d
预处理器定义。分配一个值,这个属性是可选的。
您可以使用以下方法指令
:
属性
GetAccess |
公共
|
SetAccess |
公共
|
FileExtensions
- - - - - -工具相关的文件扩展名
定义了任何工具相关的文件扩展名。这个值是可选的。
您可以使用以下方法FileExtensions
:
属性
GetAccess |
公共
|
SetAccess |
公共
|
金宝appSupportedOutputs
- - - - - -工具相关的输出格式
定义了任何工具相关的输出格式。如果该工具支持所有可用的金宝app格式,这个值是可选的。
默认值是{‘*’}
,这表明支持所有可用的格式。金宝app
单元阵列数据类型。单元阵列必须的内容coder.make.BuildOutput
枚举值,或者‘*’
。
这个属性没有任何关联的方法。直接赋值金宝appSupportedOutputs
。看到addPrebuildToolToToolchainInfo.m
例子或addPostbuildToolToToolchainInfo.m
的例子。有效的枚举值:
coder.make.BuildOutput.STATIC_LIBRARY |
申请预构建工具、构建工具和post-build工具 |
coder.make.BuildOutput.SHARED_LIBRARY |
适用于构建工具和post-build工具;需要嵌入编码器®许可证 |
coder.make.BuildOutput.EXECUTABLE |
适用于构建工具和post-build工具 |
属性
GetAccess |
公共
|
SetAccess |
公共
|
方法
公共方法
addDirective |
指令添加到指令 |
addFileExtension |
添加新文件扩展名进入FileExtensions |
getCommand |
得到构建工具命令 |
getDirective |
得到的值命名指令指令 |
getFileExtension |
获得指定的文件类型的文件扩展名FileExtensions |
getName |
得到构建工具的名字 |
getPath |
路径和宏观的构建工具路径 |
信息 |
显示构建工具属性和值 |
setCommand |
设置构建工具命令 |
setCommandPattern |
为构建工具设置模式的命令 |
setCompilerOptionMap |
组标准C / c++语言和编译器选项选择构建工具(编译器) |
setDirective |
设置的指令指令 |
setFileExtension |
设置指定的文件类型的文件扩展名FileExtensions |
setName |
设置构建工具名称 |
setPath |
设置路径和宏观的构建工具路径 |
验证 |
验证构建工具的属性 |
例子
获得一个默认的构建工具并设置其属性
的intel_tc.m
文件从添加自定义工具链,MATLAB®编码器™构建过程使用以下行来获得一个默认的构建工具,C编译器
,从一个ToolchainInfo
对象被称为tc
,然后设置其属性。
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % C编译器% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -工具= tc。getBuildTool (C编译器);工具。setName(“英特尔C编译器”);tool.setCommand (icl);tool.setPath (");tool.setDirective (‘IncludeSearchPath’,‘我’);tool.setDirective (“PreprocessorDefine”,“- d”);tool.setDirective (“OutputFlag”、“佛”);tool.setDirective(“调试”、“子”);tool.setFileExtension(“源”、“c”); tool.setFileExtension('Header','.h'); tool.setFileExtension('Object','.obj'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|');
下面的例子显示相同的详细“获取和定义”的方法:
教程的例子:添加自定义工具链,MATLAB®编码器™构建过程教程
创建一个非默认BuildTool
创建一个构建工具:
创建一个文件,它定义了一个
BuildTool
对象,如createBuildTool_1.m
或createBuildTool_2
。创建一个文件
addBuildToolToToolchainInfo.m
,:创建一个
ToolchainInfo
对象,或使用现有的一个。创建一个
BuildTool
对象从createBuildTool_1.m
或createBuildTool_2
。添加了
BuildTool
对象的ToolchainInfo
对象。
运行
addBuildToolToToolchainInfo.m
。
请参考下面的例子addBuildToolToToolchainInfo.m
,createBuildTool_1.m
,createBuildTool_2.m
。
addBuildToolToToolchainInfo.m
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %% ToolchainInfo添加一个构建工具% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%创建一个工具链对象h = coder.make.ToolchainInfo ();%的用户函数创建并填充一个构建工具工具= createBuildTool_1 ();%或工具= createBuildTool_2 ();%添加ToolchainInfo的构建工具h.addBuildTool (“我的C编译器”、工具);
createBuildTool_1.m
函数toolinfo buildToolObj = createBuildTool_1 ()。Name =“我的GNU C编译器”;toolinfo。语言=“C”;toolinfo.Command。宏=“CC”;toolinfo.Command。值=“海合会”;toolinfo.Path。宏=“CC_PATH”;toolinfo.Path。值=”;toolinfo。OptionsRegistry = {“我的C编译器”,“MY_CFLAGS”};%这个指令的键名toolinfo.Directives (1)。关键=“IncludeSearchPath”;%的宏指令(指令可以空宏)toolinfo.Directives (1)。宏=”;%这个指令的价值toolinfo.Directives (1)。值=“我”;toolinfo.Directives (2)。关键=“PreprocessorDefine”;toolinfo.Directives (2)。宏=”;toolinfo.Directives (2)。值=“- d”;toolinfo.Directives (3)。关键=“调试”;toolinfo.Directives (3)。宏=“CDEBUG”;toolinfo.Directives (3)。值=“g”;toolinfo.Directives (4)。关键=“OutputFlag”;toolinfo.Directives (4)。宏=“C_OUTPUT_FLAG”;toolinfo.Directives (4)。值=“o”;%这个文件扩展名的键名toolinfo.FileExtensions (1)。关键=“源”;%宏的文件扩展名toolinfo.FileExtensions (1)。宏=“C_EXT”;%值的文件扩展名toolinfo.FileExtensions (1)。值=“c”;toolinfo.FileExtensions (2)。关键=“头”;toolinfo.FileExtensions (2)。宏=“H_EXT”;toolinfo.FileExtensions (2)。值=. h”;toolinfo.FileExtensions (3)。关键=“对象”;toolinfo.FileExtensions (3)。宏=“OBJ_EXT”;toolinfo.FileExtensions (3)。值=“.obj”;toolinfo。DerivedFileExtensions = {“(OBJ_EXT)美元”};%‘*’意味着所有输出都受支持金宝apptoolinfo。金宝appSupportedOutputs = {‘*’};%将实际扩展(如。“c”)或者keyname如果已经注册%在“FileExtensions”toolinfo。InputFileExtensions = {“源”};toolinfo。OutputFileExtensions = {“对象”};%创建一个构建工具对象和与上述数据填充它buildToolObj = createAndpopulateBuildTool (toolinfo);函数buildToolObj = createAndpopulateBuildTool (toolinfo)% - - - - - - - - - - - - - - - - - - - - - - - - -%建立BuildTool% - - - - - - - - - - - - - - - - - - - - - - - - -buildToolObj = coder.make.BuildTool ();% - - - - - - - - - - - - - - - - - - - - - - - - -%设置通用属性% - - - - - - - - - - - - - - - - - - - - - - - - -buildToolObj。Name =toolinfo。的名字;buildToolObj。语言=toolinfo。Language; buildToolObj.Command = coder.make.BuildItem…(toolinfo.Command.Macro toolinfo.Command.Value);buildToolObj。路径= coder.make.BuildItem…(toolinfo.Path.Macro toolinfo.Path.Value);buildToolObj。OptionsRegistry = toolinfo.OptionsRegistry;buildToolObj。金宝appSupportedOutputs = toolinfo.SupportedOutputs;% - - - - - - - - - - - - - - - - - - - - - - - - -%的指令% - - - - - - - - - - - - - - - - - - - - - - - - -为i = 1:元素个数(toolinfo.Directives) directiveBuildItem = coder.make.BuildItem (…toolinfo.Directives(我).Macro toolinfo.Directives (i) value);buildToolObj.addDirective (toolinfo.Directives (i)。key, directiveBuildItem);结束% - - - - - - - - - - - - - - - - - - - - - - - - -%的文件扩展名% - - - - - - - - - - - - - - - - - - - - - - - - -为i = 1:元素个数(toolinfo.FileExtensions) fileExtBuildItem = coder.make.BuildItem (…toolinfo.FileExtensions(我).Macro toolinfo.FileExtensions (i) value);buildToolObj.addFileExtension (toolinfo.FileExtensions (i)。key, fileExtBuildItem);结束% - - - - - - - - - - - - - - - - - - - - - - - - -%派生文件扩展名% - - - - - - - - - - - - - - - - - - - - - - - - -为i = 1:元素个数(toolinfo.DerivedFileExtensions)如果buildToolObj buildToolObj.FileExtensions.isKey (toolinfo.DerivedFileExtensions{我})。DerivedFileExtensions{结束+ 1}=…(' $ ('buildToolObj。getFileExtension (toolinfo.DerivedFileExtensions{我})“)”];其他的buildToolObj。DerivedFileExtensions{结束+ 1}= toolinfo.DerivedFileExtensions {};结束结束% - - - - - - - - - - - - - - - - - - - - - - - - -%命令模式% - - - - - - - - - - - - - - - - - - - - - - - - -如果isfield (toolinfo“CommandPattern”)buildToolObj。命令Pattern = toolinfo.CommandPattern;结束% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%(输入/输出)FileExtensions% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -如果isfield (toolinfo“InputFileExtensions”)buildToolObj。InputFileExtensions = toolinfo.InputFileExtensions;结束如果isfield (toolinfo“OutputFileExtensions”)buildToolObj。OutputFileExtensions = toolinfo.OutputFileExtensions;结束
createBuildTool_2.m
函数buildToolObj = createBuildTool_2 ()% - - - - - - - - - - - - - - - - - - - - - - - - -%建立BuildTool% - - - - - - - - - - - - - - - - - - - - - - - - -buildToolObj = coder.make.BuildTool ();% - - - - - - - - - - - - - - - - - - - - - - - - -%设置通用属性% - - - - - - - - - - - - - - - - - - - - - - - - -buildToolObj。Name =“我的GNU C编译器”;buildToolObj。语言=“C”;buildToolObj。命令= coder.make.BuildItem(“CC”,“海合会”);buildToolObj。路径= coder.make.BuildItem(“CC_PATH”,”);buildToolObj。OptionsRegistry = {“我的C编译器”,“MY_CFLAGS”};buildToolObj。金宝appSupportedOutputs = {‘*’};%‘*’意味着所有输出都受支持金宝app% - - - - - - - - - - - - - - - - - - - - - - - - -%的指令% - - - - - - - - - - - - - - - - - - - - - - - - -directiveBuildItem = coder.make.BuildItem (”,“我”);buildToolObj.addDirective (“IncludeSearchPath”,directiveBuildItem);directiveBuildItem = coder.make.BuildItem (”,“- d”);buildToolObj.addDirective (“PreprocessorDefine”,directiveBuildItem);directiveBuildItem = coder.make.BuildItem (“CDEBUG”,“g”);buildToolObj.addDirective (“调试”,directiveBuildItem);directiveBuildItem = coder.make.BuildItem (“C_OUTPUT_FLAG”,“o”);buildToolObj.addDirective (“OutputFlag”,directiveBuildItem);% - - - - - - - - - - - - - - - - - - - - - - - - -%的文件扩展名% - - - - - - - - - - - - - - - - - - - - - - - - -fileExtBuildItem = coder.make.BuildItem (“C_EXT”,“c”);buildToolObj.addFileExtension (“源”,fileExtBuildItem);fileExtBuildItem = coder.make.BuildItem (“H_EXT”,. h”);buildToolObj.addFileExtension (“头”,fileExtBuildItem);fileExtBuildItem = coder.make.BuildItem (“OBJ_EXT”,“.obj”);buildToolObj.addFileExtension (“对象”,fileExtBuildItem);% - - - - - - - - - - - - - - - - - - - - - - - - -%其他人% - - - - - - - - - - - - - - - - - - - - - - - - -buildToolObj。DerivedFileExtensions = {“(OBJ_EXT)美元”};buildToolObj。InputFileExtensions = {“源”};%将实际扩展(如。“c”)%或keyname如果已经注册在“FileExtensions”buildToolObj。OutputFileExtensions = {“对象”};%将实际扩展(如。“c”)%或keyname如果已经注册在“FileExtensions”
Prebuild和Postbuild工具添加到工具链
中的代码addPrebuildToolToToolchainInfo.m
和addPostbuildToolToToolchainInfo.m
例子展示如何添加prebuild和postbuild工具工具链。
addPrebuildToolToToolchainInfo.m
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%与选择SupportedOutputs ToolchainInfo添加一个预构金宝app建工具% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%创建一个工具链对象tc = coder.make.ToolchainInfo (coder.make.getToolchainInfoFromRegistry (coder.make.getDefaultToolchain));%设置内联命令源依赖工具tc。InlinedCommands = [“定义sourceToDep = '10…“$ (foreach来源,美元(1),(CC)美元(CFLAGS) - e多议员mf " $ (notdir $(来源:% c = % .d))”-MT"$(notdir $(source:%.c=%.o))" $(source) )'10…“endef”];%设置makefile包括使= tc.BuilderApplication ();制作。IncludeFiles = {‘* .d‘};基于gcc %依赖文件生成器工具链prebuildToolName =“依赖文件发生器”;prebuildTool = tc.addPrebuildTool (prebuildToolName);%设置命令宏和值prebuildTool.setCommand (“SRC2DEP”,”(叫sourceToDep,美元(src))”);%设置工具选项宏prebuildTool。OptionsRegistry = {prebuildToolName,“SRC2DEP_OPTS”};%设置输出类型的工具prebuildTool。金宝appSupportedOutputs = {‘*’};tc。addBuildConfigurationOption (prebuildToolName prebuildTool);tc.setBuildConfigurationOption (“所有”prebuildToolName,”);%显示预构建工具的属性tc.getPrebuildTool (“依赖文件发生器”)
addPostbuildToolToToolchainInfo.m
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%添加post-build ToolchainInfo工具% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%精灵(可执行的和可链接格式)16进制转换器postbuildToolName =“elf2hex转换器”;%创建和填充一个post-build工具tc = coder.make.ToolchainInfo;postbuild = tc.addPostbuildTool (postbuildToolName);%设置命令宏观和价值的工具postbuild.setCommand (“OBJCOPY”,“arm-none-eabi-objcopy”);%设置路径工具postbuild.setPath (“OBJCOPYPATH”,“(MW_GNU_ARM_TOOLS_PATH)美元”);%为工具设置选项postbuild。OptionsRegistry = {postbuildToolName,“OBJCOPYFLAGS_HEX”};%设置输出类型的工具postbuild。金宝appSupportedOutputs = {coder.make.enum.BuildOutput.EXECUTABLE};%为工具创建构建配置tc。addBuildConfigurationOption (postbuildToolName postbuild);%设置构建配置工具tc.setBuildConfigurationOption (“所有”postbuildToolName,“- o ihex(产品)(PRODUCT_HEX)美元);%显示post-build工具属性tc.getPostbuildTool (“elf2hex转换器”)
版本历史
介绍了R2013a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。