当您为模型生成代码时,代码生成器默认创建模型所需的共享实用程序文件。当您使用不同版本生成代码时,代码生成器可以生成功能相同的共享文件,其中包含一些非功能差异。例如,不同的注释和不同的编码风格。当您使用同一个版本在不同的文件夹中为不同的模型生成代码时,您还可以生成具有非功能差异的共享文件。例如,如果你指定了differentParenthesesLevel
或ExpressionFolding
值,代码生成器可以生成包含不同注释或不同编码样式的共享文件。
集成代码,包括功能相同的共享文件:
验证的开销更大,因为每个共享文件都需要验证。
如果共享文件定义了重复的符号,则产生编译错误。
如果你有嵌入式编码器®许可证,您可以通过指定重用现有文件夹中的共享代码来避免这些问题,例如,验证代码的只读库。在这种情况下,代码生成器不会创建新的共享实用程序文件。构建过程使用外部代码或之前从文件夹中生成的共享实用程序代码。管理员维护和更新只读库。
在“配置参数”对话框中:
在现有的共享代码字段,输入共享代码文件夹的完整路径。
验证只使用现有的共享代码诊断设置为错误
(默认)。
删除slprj
文件夹或移动到新的工作文件夹。
构建模型。如果您没有看到错误,则您的共享代码文件夹包含所需的共享实用程序文件。
如果现有共享代码文件夹中的文件丢失,则会看到一个错误。要继续使用本地生成的缺失的共享实用程序文件的版本进行代码生成:
设置只使用现有的共享代码诊断为警告
.
重建你的模型。代码生成过程使用缺失的共享实用程序文件的本地生成版本。
向已验证代码库的管理员提供您的模型和关于丢失的共享实用程序文件的信息。通过模型,管理员生成所需的共享实用程序文件。使用sharedCodeUpdate
(嵌入式编码)时,管理员将文件添加到现有的共享代码文件夹中。
如果您需要重用从上一个版本导出的组件的共享代码,请向管理员提供有关该组件的构建文件夹位置的信息。管理员可以使用sharedCodeUpdate
将组件的共享代码复制到现有的共享代码文件夹。
当现有共享代码文件夹中的文件可用时,重复步骤1-3。
如果共享实用程序代码是从跨模型共享的库子系统,则不能重用该代码在释放,因为代码是特定于释放的——符号名和文件名的混乱包括了释放号。管理员必须将为每个版本生成的共享实用程序代码添加到共享代码文件夹中。
的sharedCodeUpdate
(嵌入式编码)函数可以将内容相同但文件名和函数名不同的文件添加到共享代码文件夹中。当您有不同的模型组件需要它们自己的共享实用程序函数时,此行为非常有用。尽管有些代码是重复的,但是不同的模型组件可以访问用于验证它们的共享实用程序功能。要强制模型组件拥有它们自己版本的共享实用程序函数,可以配置命名规则,将模型名称插入其中共享公用标识符(嵌入式编码).
对于大多数共享实用程序代码文件,您可以指定可以跨版本重用的主副本,而无需修改文件。例如,对于某些文件,rtwtypes.h
,zero_crossing_types.h
,在某些情况下,需要手工编辑以生成主副本,您可以使用来自不同版本的生成代码。例如:
的rtwtypes.h
由R2013a及之前版本生成的文件包含校验和。
/ *这个ID是用来检测包含不兼容rtwtypes.h * / #定义RTWTYPES_ID_C08S16I32L64N64F0
rtwtypes.h
要包含在集成中的文件,复制相应的#定义
声明到你的主拷贝rtwtypes.h
.在R2015a中,零交叉的定义从rtwtypes.h
成zero_crossing_types.h
.创建一个rtwtypes.h
文件是兼容从不同版本生成的模型代码,在你的主拷贝rtwtypes.h
,插入此语句。
# include“zero_crossing_types.h”
rtwtypes.h
那zero_crossing_types.h
提供了。sharedCodeUpdate
(嵌入式编码)|crossReleaseImport
(嵌入式编码)