RTW Embedded Coder生成代码时#include存于C文件而非H文件的问题
解决Embedded Coder在R2022b与R2020b中#include头文件位置差异的问题
问题原因
这是MathWorks在Matlab R2021a及后续版本(含R2022b)中对Embedded Coder代码生成逻辑的有意调整:
- R2021a+版本默认将模型相关的头文件包含语句放在C文件中,目的是减少头文件间的依赖关系,加快编译速度,属于代码生成架构的优化项。
- R2020b及更早版本仍采用旧逻辑,默认把
#include声明放在头文件(H文件)内。
调整R2022b代码生成配置的步骤
要让R2022b生成的代码将#include放回H文件,按照以下操作修改模型配置:
- 打开Simulink模型,按下
Ctrl+E打开Configuration Parameters窗口 - 切换到Code Generation > Code Style选项卡
- 找到Header file placement配置项,将默认值
'In C file'改为'In header file' - 点击Apply保存配置,重新生成代码即可
自定义头文件的额外处理
如果是通过模型配置添加的外部自定义头文件,还需要检查Code Generation > Custom Code下的设置:
- 在Include headers区域,选择
'In header file'确保自定义头文件被包含在H文件中 - 若需要指定具体的目标头文件,可通过Header file输入框手动设置目标文件名称
内容的提问来源于stack exchange,提问作者Cyborgin
相关产品推荐
相关产品推荐

