在使用MDK5的Arm Compiler 6(V6)编译RT-Thread时出现 --c99 选项的错误,是因为该选项在AC6中已被弃用。以下是系统化的解决方案:
步骤 1: 更新RT-Thread源码
确保使用的RT-Thread版本已适配AC6:
- 建议更新到RT-Thread最新版本(GitHub或gitee)。
- 早期版本可能缺少AC6支持,更新后通常自动修复。
步骤 2: 修改编译器选项(关键步骤)
方法一:通过MDK界面修改
- 打开工程 Options for Target → C/C++ 选项卡。
- 删除
--c99选项(参考位置):
- 在 Misc Controls 输入框中删除
--c99。
- 或在 Preprocessor Symbols 后检查是否有残留选项。
- 启用隐式C99支持:
- 勾选 C99 Mode (MDK会自动添加
-std=c99)。
方法二:直接修改工程文件
- 关闭MDK,用文本编辑器打开工程文件(
.uvprojx)。
- 搜索
--c99 并删除所有匹配项。
- 搜索
0 改为 2(启用C99)。
步骤 3: 适配RT-Thread的libcpu
某些CPU移植文件需要额外修改:
步骤 4: 验证其他兼容性问题
若仍报错,检查:
- 汇编文件语法:AC6要求统一使用
.s 扩展名(非 .asm),确认RT-Thread的汇编文件命名正确。
- 头文件路径:确保所有路径无中文或特殊字符(避免解析错误)。
步骤 5: 加速U8g2编译
即使切换到AC6,U8g2仍可能较慢:
验证结果
- 重新生成MDK工程(若使用scons,则执行
scons --target=mdk5)。
- 在MDK中编译,AC6通常可提速50%以上(尤其对多文件项目)。
关键提示:若更新RT-Thread后问题仍存,请手动检查所有编译选项中的 --c99 残留(重点关注文件组级别的设置)。AC6的错误提示比AC5更严格,处理后续警告时可暂时屏蔽非关键警告以聚焦错误。
在使用MDK5的Arm Compiler 6(V6)编译RT-Thread时出现 --c99 选项的错误,是因为该选项在AC6中已被弃用。以下是系统化的解决方案:
步骤 1: 更新RT-Thread源码
确保使用的RT-Thread版本已适配AC6:
- 建议更新到RT-Thread最新版本(GitHub或gitee)。
- 早期版本可能缺少AC6支持,更新后通常自动修复。
步骤 2: 修改编译器选项(关键步骤)
方法一:通过MDK界面修改
- 打开工程 Options for Target → C/C++ 选项卡。
- 删除
--c99选项(参考位置):
- 在 Misc Controls 输入框中删除
--c99。
- 或在 Preprocessor Symbols 后检查是否有残留选项。
- 启用隐式C99支持:
- 勾选 C99 Mode (MDK会自动添加
-std=c99)。
方法二:直接修改工程文件
- 关闭MDK,用文本编辑器打开工程文件(
.uvprojx)。
- 搜索
--c99 并删除所有匹配项。
- 搜索
0 改为 2(启用C99)。
步骤 3: 适配RT-Thread的libcpu
某些CPU移植文件需要额外修改:
步骤 4: 验证其他兼容性问题
若仍报错,检查:
- 汇编文件语法:AC6要求统一使用
.s 扩展名(非 .asm),确认RT-Thread的汇编文件命名正确。
- 头文件路径:确保所有路径无中文或特殊字符(避免解析错误)。
步骤 5: 加速U8g2编译
即使切换到AC6,U8g2仍可能较慢:
验证结果
- 重新生成MDK工程(若使用scons,则执行
scons --target=mdk5)。
- 在MDK中编译,AC6通常可提速50%以上(尤其对多文件项目)。
关键提示:若更新RT-Thread后问题仍存,请手动检查所有编译选项中的 --c99 残留(重点关注文件组级别的设置)。AC6的错误提示比AC5更严格,处理后续警告时可暂时屏蔽非关键警告以聚焦错误。
举报