You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派PICO项目CMake编译因编码问题找不到.obj文件如何解决

问题根本原因

你日志里路径前的乱码∩╗┐是UTF-8 BOM(字节顺序标记)解析错误导致的,报错的AR10B2~1.EXE是ARM交叉编译链的归档工具arm-none-eabi-ar,该工具无法识别带BOM的文件路径,才会提示文件不存在,实际上你可以到CMakeFiles/Generated.dir目录下验证,Generated.c.obj是已经正常生成了的。
这个问题属于CMake 3.21.x版本在Windows环境下生成NMake Makefile时的已知编码兼容缺陷。

解决步骤

  • 先完全删除build目录下的所有缓存文件,避免旧的错误构建配置残留
  • 把项目下的Generated.c源文件编码改为不带BOM的UTF-8:用系统记事本打开文件,点击「另存为」,底部编码下拉选择「UTF-8」(不要选带BOM/签名的UTF-8)后覆盖保存即可
  • 重新执行CMake配置命令时,添加参数强制指定编码规则:
    cmake .. -G "NMake Makefiles" -DCMAKE_C_FLAGS="--utf-8" -DCMAKE_CXX_FLAGS="--utf-8"
    
  • 如果上述操作后仍然报错,直接升级CMake到3.24及以上版本,该版本后官方已经修复了Windows平台下NMake生成文件的BOM兼容问题
  • 备选方案:避开NMake生成器,直接使用Visual Studio 2019生成器,操作更稳定:
    cmake .. -G "Visual Studio 16 2019" -A ARM
    
    配置完成后直接打开生成的sln工程文件编译即可,注意编译目标选择ARM架构,不要选择x86/x64。

内容的提问来源于stack exchange,提问作者Joe Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:45:03