编译Chromium时Ninja报错:toolchain.ninja词法错误求助
Chromium编译报错:toolchain.ninja lexing error 解决方法
问题场景
编译Chromium时,执行gn args out/mybuild配置参数后生成文件正常,但运行autoninja -C out/mybuild chrome时出现报错:
ninja: Entering directory `out/mybuild' ninja: error: toolchain.ninja:309: lexing error
查看toolchain.ninja文件发现第308-309行被异常拆分,混入终端控制字符\^[\[\?1034h:
307 rule __base_build_date___build_toolchain_linux_clang_x64__rule 308 command = python3 ../../build/write_build_date_header.py gen/base/generated_build_date.h 1666540117\ 309 \^[\[\?1034h 310 description = ACTION //base:build_date(//build/toolchain/linux:clang_x64)
解决步骤
- 修正终端字符编码:在终端执行以下命令设置标准编码,避免控制字符混入生成文件:
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 - 重新生成构建配置:删除现有构建目录,从头执行配置和编译步骤:
rm -rf out/mybuild gn args out/mybuild # 输入原配置参数后保存退出 autoninja -C out/mybuild chrome - 切换纯文本终端执行:如果使用图形界面终端(如GNOME Terminal),切换到纯tty终端(按Ctrl+Alt+F3~F6)执行命令,规避图形终端的控制字符干扰。
- 清理终端干扰项:关闭终端自动补全插件、自定义快捷键等可能插入额外字符的工具,确保gn命令在干净环境下运行。
内容的提问来源于stack exchange,提问作者Арман Айрапетов
相关产品推荐
相关产品推荐

