ARM DS-5编译报错L6242E:不同版本编译器生成项目无法链接如何解决
ARM Compiler跨版本链接L6242E错误解决方案
该错误由ARM Compiler 5和ARM Compiler 6的默认编译参数不一致导致,你遇到的两个冲突分别对应宽字符长度、枚举存储规则不匹配,按以下步骤操作即可解决:
方案一(推荐):调整myProj的ARM 6编译配置,匹配BSP的ARM 5默认规则
BSP通常为硬件适配的稳定版本,修改应用层配置风险更低,只需在ARM Compiler 6的编译参数中添加两个选项:
- 指定wchar_t长度为16位:添加编译参数
--wchar_t=16,匹配ARM Compiler 5的默认wchar_t长度,解决wchart-16 clashes with wchart-32冲突 - 指定枚举按int类型存储:添加编译参数
--enum_is_int,关闭ARM Compiler 6默认的枚举压缩存储规则,匹配ARM Compiler 5的默认枚举行为,解决packed-enum clashes with enum_is_int冲突
方案二:调整myProj_bsp的ARM 5编译配置,匹配ARM 6默认规则
如果需要保持myProj的默认ARM 6配置,只需在ARM Compiler 5的编译参数中添加两个选项:
- 指定wchar_t长度为32位:添加编译参数
--wchar_t=32 - 开启枚举压缩存储:添加编译参数
--packed_enum
配置生效提示:修改参数后需要对两个项目执行全量清理+重新构建,避免旧编译缓存导致问题依然存在。如果通过DS-5可视化面板配置,可直接在编译器设置页找到「Wchar_t大小」「枚举类型存储规则」的对应下拉选项修改,效果和命令行参数完全一致。
内容的提问来源于stack exchange,提问作者LowK
相关产品推荐
相关产品推荐

