主要内容

构建过程定制

对于某些应用程序,您可能希望控制在C/ c++源代码生成之后但在编译之前发生的构建过程的各个方面。例如,您可以指定编译器或链接器选项。您可以获取和修改所有生成的源文件,以添加版权免责声明。您可以以多种方式控制构建过程。通过以下方法自定义构建过程:

所有这些方法都是通过更改生成并用于构建代码的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_nameinput_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编码器应用:

  1. 打开生成对话框,对生成代码页,单击生成箭头

  2. 点击更多的设置

  3. 自定义代码选项卡,设置Post-code-generation命令参数。

如果您的后代码生成命令调用用户定义函数,请确保函数位于MATLAB路径上。如果构建过程无法找到您在命令中使用的函数,则该过程将失败。

另请参阅

||||

相关的话题

Baidu
map