构建过程定制
对于某些应用程序,您可能希望控制在C/ c++源代码生成之后但在编译之前发生的构建过程的各个方面。例如,您可以指定编译器或链接器选项。您可以获取和修改所有生成的源文件,以添加版权免责声明。您可以以多种方式控制构建过程。通过以下方法自定义构建过程:
使用的方法
环球套票。BuildInfo
对象。方法修改构建信息
编码器。ExternalDependency
类。控件执行的脚本或函数修改构建信息
PostCodeGenCommand
配置属性。这个脚本或函数称为后代码生成命令。
所有这些方法都是通过更改生成并用于构建代码的makefile来工作的。作为最佳实践,建议使用前三种方法,coder.updateBuildInfo
,环球套票。BuildInfo
,编码器。ExternalDependency
.这些方法使您能够预先配置您的MATLAB®用您需要的构建信息进行编码。另外,post-code生成命令可以提供基于独立函数或脚本的额外的、高度可定制的方法。
的编码器。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
).
命令格式 | 结果 |
---|---|
脚本 | 脚本可以直接访问项目(顶级函数)名称和构建信息。 |
函数 | 函数可以将项目名称和构建信息作为参数接收。 |
要将post代码生成命令编写为脚本,请设置PostCodeGenCommand
到脚本名称。您可以在变量中访问项目名称projectName
和环球套票。BuildInfo
对象。buildInfo
.在命令行中输入:
CFG = code .config('lib');cfg。PostCodeGenCommand = 'ScriptName”;
将命令定义为函数时,可以指定任意数量的输入参数。如果要访问项目名称,请使用includeprojectName
作为一个论点。如果您想修改或访问构建信息,请添加buildInfo
作为一个论点。在命令行中输入:
CFG = code .config('lib');cfg。PostCodeGenCommand = 'FunctionName(projectName buildInfo) ';
例如,考虑函数setbuildargs
方法将构建信息对象作为参数,并通过添加链接器选项addLinkFlags
方法。
函数setbuildargs (buildInfo)正在编译的示例需要pthread支持。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