构建过程定制
对于某些应用程序,您可能希望控制在C/ c++源代码生成之后、编译之前发生的构建过程的某些方面。例如,您可以指定编译器或链接器选项。您可以获取和修改所有生成的源文件,以添加版权免责声明。您可以通过多种方式控制构建过程。通过以下方法定制构建过程:
使用的方法
环球套票。BuildInfo
对象。属性修改构建信息
编码器。ExternalDependency
类。属性执行的脚本或函数修改生成信息
PostCodeGenCommand
配置属性。此脚本或函数称为后代码生成命令。
所有这些方法都是通过更改生成并用于构建代码的makefile来工作的。作为最佳实践,建议使用前三种方法,coder.updateBuildInfo
,环球套票。BuildInfo
,编码器。ExternalDependency
.这些方法使您能够预先配置MATLAB®使用您需要的构建信息进行编码。另外,邮政代码生成命令可以提供一种基于独立函数或脚本的额外的、高度可定制的方法。
的编码器。ExternalDependency
类和post-code-generation命令提供了对构建信息对象的访问,buildInfo
.上使用构建信息方法buildInfo
配置项目、构建和依赖项信息。MATLAB编码器™创建buildInfo
从课堂上环球套票。BuildInfo
在构建之初。该对象存储在mat文件中buildInfo.mat
并保存在构建文件夹中。
在代码生成之后,您可以通过加载来访问构建信息对象buildInfo.mat
.不要将构建信息对象与构建配置对象混淆,编码器。BuildConfig
类中配置构建的特定功能编码器。ExternalDependency
类。
环球套票。BuildInfo
方法
若要访问或向构建信息对象写入数据,请使用环球套票。BuildInfo
方法。使用这些方法可以修改:
编译器选项
链接器选项
预处理器标识符定义
源文件和路径
包含文件和路径
预编译的外部库
包装的选择。
看到用于其他开发环境的包代码.
要调用这些方法,请使用以下语法:
method_name(buildInfoinput_arg1、……input_argN)
你也可以输入:
buildInfo。method_name(input_arg1、……input_argN)
要在代码生成完成后使用生成信息对象,请加载buildInfo.mat
文件从您生成的代码。例如:
负载(fullfile (“。”,“raspberrypi_generated_code”,“buildInfo.mat”));packNGo (buildInfo“文件名”,“copy_to_raspberrypi”);
coder.updateBuildInfo
函数
的coder.updateBuildInfo
函数提供了一种方便的方法来自定义构建过程从您的MATLAB代码。有关更多信息和示例,请参见coder.updateBuildInfo
而且环球套票。BuildInfo
参考页面。
编码器。ExternalDependency
类
处理外部代码集成时,或具有多个使用相同构建信息的函数时,请使用编码器。ExternalDependency
类。的编码器。ExternalDependency
类提供对构建信息对象和方法的访问。有关更多信息和示例,请参见开发外部C/ c++代码接口和编码器。ExternalDependency
参考页面。
Post-Code-Generation命令
作为最佳实践,请使用前两种方法自定义构建过程,coder.updateBuildInfo
而且编码器。ExternalDependency
.提供额外灵活性的第三种方法是后代码生成命令。命令执行的函数或脚本PostCodeGenCommand
配置对象属性。使用代码生成配置对象(编码器。MexCodeConfig
,编码器。CodeConfig
或编码器。EmbeddedCodeConfig
).
命令格式 | 结果 |
---|---|
脚本 | 脚本可以直接访问项目(顶级函数)名称和构建信息。 |
函数 | 函数可以接收项目名称和构建信息作为参数。 |
要将邮政代码生成命令编写为脚本,请设置PostCodeGenCommand
到脚本名称。您可以在变量中访问项目名称projectName
和环球套票。BuildInfo
对象。buildInfo
.在命令行输入:
CFG = code .config('lib');cfg。PostCodeGenCommand = 'ScriptName”;
将命令定义为函数时,可以指定任意数量的输入参数。如果要访问项目名称,请包含projectName
作为一个论证。如果要修改或访问构建信息,请添加buildInfo
作为一个论证。在命令行输入:
CFG = code .config('lib');cfg。PostCodeGenCommand = 'FunctionName(projectName buildInfo) ';
例如,考虑函数setbuildargs
对象将构建信息对象作为参数,并通过使用addLinkFlags
方法。
函数setbuildargs (buildInfo)正在编译的示例需要pthread支持。金宝app-lpthread标志要求包含pthread库构建中的%linkFlags = {“-lpthread”};buildInfo.addLinkFlags (linkFlags);
要使用此函数作为后代码生成命令,需要创建一个配置对象。在生成代码时使用此配置对象。例如:
CFG = code .config(“dll”);cfg。PostCodeGenCommand =“setbuildargs (buildInfo)”;codegen配置cfg喷火
方法设置代码生成后命令MATLAB编码器应用:
打开生成对话框中的生成代码页,单击生成箭头.
点击更多的设置.
在自定义代码选项卡,设置Post-code-generation命令参数。
如果代码生成后命令调用用户定义函数,请确保这些函数位于MATLAB路径上。如果构建过程无法找到命令中使用的函数,则该过程将失败。
另请参阅
编码器。MexCodeConfig
|编码器。CodeConfig
|编码器。EmbeddedCodeConfig
|coder.updateBuildInfo
|编码器。ExternalDependency