Main Content

管理编译过程文件夹

编译过程将从 Simulink® 图更新和模型编译生成的文件放置到默认指定的文件夹层次结构中。在以下情况下,您可以更改编译过程文件夹的默认设定:

  • 您的公司不使用当前工作文件夹作为代码生成文件夹或仿真缓存文件夹的位置。

  • 您将代码生成文件夹置于版本控制下,但未将仿真缓存文件夹置于版本控制下。

MATLAB® 会话参数 CacheFolderCodeGenFolderCodeGenFolderStructure 是文件生成控制参数,用于指定编译过程的文件夹位置。在 MATLAB 会话开始时,以下 Simulink 预设项确定这些参数的值:

Simulation cache folderCacheFolder

Code generation folderCodeGenFolder

Code generation folder structureCodeGenFolderStructure

要在 MATLAB 会话中修改参数,请使用 Simulink.fileGenControl。您设置的参数值将在 MATLAB 会话结束时过期。

文件生成控制参数

下表提供有关如何使用参数来管理编译过程文件夹的信息。

MATLAB 会话参数Simulink 预设项描述

CacheFolder

Simulation cache folder

编译过程中,基于 Simulink 图更新生成的文件以及用于仿真和代码生成的模型编译工件会被放置在仿真缓存文件夹 simulationCacheFolder 中。该文件夹是根文件夹。

默认情况下(即 CacheFolder = '' 时),simulationCacheFolder 是当前工作文件夹 pwd

您可以使用该参数指定其他文件夹。例如,如果您要:

  • 将生成的文件与模型和其他资源分离。

  • 重用或共享以前编译的仿真目标,而不用将当前工作文件夹设置回上次使用的工作文件夹。

CodeGenFolder

Code generation folder

编译过程使用系统目标文件从 Simulink 模型生成生产代码,并将生产代码放入代码生成文件夹 codeGenerationFolder 中。该文件夹是根文件夹。

如果您选择生成可执行程序文件,编译过程会将文件 model.exe (Windows®) 或 model (UNIX®) 写入该文件夹。

默认情况下(即 CodeGenFolder = '' 时),codeGenerationFolder 是当前工作文件夹 pwd

您可以使用该参数指定其他文件夹。例如,如果您要将生成的生产代码与以下各项分离:

  • 模型和其他资源。

  • 生成的仿真和代码生成工件。

如果您将驱动器的根文件夹指定为代码生成文件夹,则编译过程不能为您的模型生成代码。例如,C:\

CodeGenFolderStructure

Code generation folder structure要指定代码生成文件夹内的文件夹结构,请使用该参数。例如,如果您为不同目标环境配置模型,则可以为从每个模型生成的代码指定一个单独的子文件夹。

编译过程文件夹

下表提供有关 CodeGenFolderStructure 如何控制仿真缓存文件夹和代码生成文件夹内的文件夹结构的信息。

CodeGenFolderStructure = 'ModelSpecific' 时的文件夹名称

CodeGenFolderStructure = 'TargetEnvironmentSubfolder' 时的文件夹名称

描述

codeGenerationFolder/model_target_rtw

target 的默认值是所选系统目标文件的名称,例如 grtertrsim。您可以使用系统目标文件中的 rtwgensettings.BuildDirSuffix 字段更改 target

codeGenerationFolder/targetSpecific/model

编译过程使用系统目标文件和硬件设备的配置信息为子文件夹 targetSpecific 生成唯一标签。

编译文件夹,用于存储生成的源代码和由编译过程创建的其他文件。

包含生成的代码模块 model.cmodel.h 以及生成的联编文件 model.mk

model.mk 用于编译和链接从模型组件生成的代码。

model 是源模型的名称。

codeGenerationFolder/model_target_rtw/services

codeGenerationFolder/targetSpecific/model/services

为使用服务代码接口配置的组件模型生成代码时创建的文件夹。

包含 services.h,这是为目标平台服务指定函数原型的头文件。

有关详细信息,请参阅Generate and Verify CodeIdentify and Package Files for Deployment

codeGenerationFolder/model_target_rtw/services/lib

codeGenerationFolder/targetSpecific/model/services/lib

包含 buildInfo.mat,用于构建组件模型库,该库表示根据 services.h 编译的生成代码。

有关详细信息,请参阅Generate and Verify CodeIdentify and Package Files for Deployment

codeGenerationFolder/model_target_rtw/html

codeGenerationFolder/targetSpecific/model/html

包含编译过程生成的报告文件的代码生成报告文件夹。

codeGenerationFolder/slprj/target/model

codeGenerationFolder/targetSpecific/_ref/model

模型引用目标文件。

codeGenerationFolder/slprj/target/model/referenced_model_includes

codeGenerationFolder/targetSpecific/_ref/model/referenced_model_includes

来自 model 引用的模型的头文件。

codeGenerationFolder/slprj/target/model/tmwinternal

codeGenerationFolder/targetSpecific/_ref/model/tmwinternal

代码生成期间使用的 MAT 文件。

codeGenerationFolder/slprj/target/_sharedutils

codeGenerationFolder/targetSpecific/_shared

模型引用系统目标文件的工具函数,在模型之间共享。

文件夹还包含用于编译生成的共享实用工具代码的 rtwshared.mk

simulationCacheFolder/slprj/sim/model

simulationCacheFolder/slprj/sim/model

引用模型的仿真目标文件。

simulationCacheFolder/slprj/sim/model/tmwinternal

simulationCacheFolder/slprj/sim/model/tmwinternal

代码生成期间使用的 MAT 文件。

simulationCacheFolder/slprj/sim/_sharedutils

simulationCacheFolder/slprj/sim/_sharedutils

仿真系统目标文件的工具函数,在模型之间共享。

如果系统目标文件是基于 ERT 的,则这些模型配置参数还控制共享实用工具代码的位置:

您可以使用 RTW.getBuildDir 来显示模型的编译文件夹信息。

另请参阅

|

相关主题