注册自定义工具链和构建可执行文件
这个例子展示了如何注册和使用工具链来构建可执行文件。本例使用Intel®编译器。但是,这些概念和编程接口也适用于其他工具链。一旦您注册了一个工具链,您就可以配置一个模型,这样代码生成器就可以使用这个工具链来为这个模型构建一个可执行文件。
工具链
工具链是编译和链接指定平台代码所需的工具的集合。工具链由多个工具组成,如编译器、链接器和归档器。您可以使用多个选项在工具链中配置工具,并将工具规范分组为配置类型。
创建一个新文件夹并复制相关文件
下面的代码在当前工作文件夹(pwd)中创建一个文件夹。新文件夹包含本例中的文件。如果不希望影响当前文件夹,或者不能在此文件夹中生成文件,请在调用该命令之前更改工作文件夹。
拷贝文件(fullfile (matlabroot,“工具箱”,“环球套票”,“rtwdemos”,“toolchain_demo”),“toolchain_demo”,“f”) cdtoolchain_demo
打开一个模型
打开rtwdemo_counter
模型。默认情况下,该模型被配置为使用通用实时目标(GRT)配置和工具链方法来构建可执行文件。本例中演示的功能可用于配置为使用工具链方法的模型。
模型=“rtwdemo_counter”;open_system(模型)
选择工具链
打开配置参数对话框。选择代码生成.的工具链设置节包含用于配置工具链的参数。从工具链在下拉列表中,选择安装在您的开发系统上的工具链,用于从您的模型生成的代码构建可执行文件。
默认情况下,快速跑生成配置被选中。点击显示设置查看为构建生成的代码而指定的工具链标志。根据当前应用程序开发目标选择构建配置。
关闭配置参数对话框。
创建一个ToolchainInfo对象
这个例子展示了如何注册一个自定义工具链并将其添加为一个可选择的工具链工具链选择。
注册自定义工具链的第一步是创建一个ToolchainInfo
对象,该对象包含有关工具链的信息。方法可用于设置工具链规范。你可以共享一个ToolchainInfo
对象。
打开Intel编译器的工具链定义文件。该文件创建一个ToolchainInfo
对象,该对象包含关于64位Windows®平台上的英特尔工具链的信息。
编辑intel_tc
您可以在自定义编译器生成的构建的诊断消息窗格中显示错误和警告。有关更多信息,请参见诊断消息窗格.
运行工具链定义文件以生成ToolchainInfo
对象。
Tc = intel_tc;
保存ToolchainInfo
对象tc
到MAT文件。
保存intel_tctc
注册自定义工具链
在创建ToolchainInfo
对象的新工具链,注册它。注册一个工具链环球套票。TargetRegistry
.要注册工具链,请编写rtwTargetInfo.m
文件。然后,将该文件添加到MATLAB路径中,以便系统自动加载它。
编辑rtwTargetInfo
重置TargetRegistry
使用新的rtwTargetInfo.m
文件。
RTW.TargetRegistry.getInstance (“重置”);
选择自定义工具链
重新打开配置参数对话框。点击工具链.您应该在列表中看到新的工具链。选择英特尔v18
工具链。
通过编程,您可以使用以下命令完成相同的任务:
cs = getActiveConfigSet(model);set_param (cs,工具链的tc.Name)
验证你的选择。
工具链= get_param(cs,工具链的)
toolchain = 'Intel v18 | nmake makefile(64位Windows)'
使用自定义工具链构建模型
现在您可以使用新的自定义工具链构建模型。
注意:如果你没有安装英特尔工具链,你可以使用下面的命令来生成代码和makefile。
set_param (cs,“GenCodeOnly”,“上”)
构建模型以生成使用新工具链的代码和makefile。
slbuild(模型)
###开始构建过程:rtwdemo_counter成功完成代码生成:rtwdemo_counter构建摘要顶级模型目标构建:模型动作重建原因=================================================================================== rtwdemo_counter代码生成的代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 16.819s
获取build目录信息。
dirInfo = RTW.getBuildDir(模型);
检查生成的makefile。
编辑(fullfile (dirInfo。BuildDirectory,模型“楼上”)))
如果安装了Intel编译器,那么当构建过程完成时,就可以运行可执行文件。
If ispc system([model '.exe']) else system(model)结束
恢复
您可以选择删除之前创建的文件夹。
cd..删除文件夹(“toolchain_demo”,“年代”)
重置TargetRegistry
删除上面注册的工具链。
RTW.TargetRegistry.getInstance (“重置”);
关闭模型。
close_system(模型中,0)
清除工作区中引入的变量。
清晰的公司K限制重置模型tccs工具链