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

首次使用Ninja构建程序遇build.ninja词法错误,求助排查原因

问题原因及解决办法

核心原因

你遇到的lexing error词法错误,主要有两个问题:

  1. 规则内变量缩进不符合语法:Ninja要求rule块中的command等变量必须用**制表符(Tab)**缩进,你用了空格缩进,导致Ninja无法正确解析语法结构。
  2. 存在无效语法字符:build hello: link hello.o这一行末尾多了一个反引号`,属于多余的无效字符,干扰了Ninja的词法解析。

另外你的main.c还有一个潜在问题:使用printf但未包含标准输入输出头文件#include <stdio.h>,后续编译时会触发警告或错误,建议一并修正。

修正后的build.ninja文件

rule compile
	command = gcc -Wall -c $in -o $out

rule link
	command = gcc $in -o $out

build hello.o: compile main.c
build hello: link hello.o

注意:command前面的缩进必须是单个制表符,不能用空格替代。

修正后的main.c文件

#include <stdio.h>
int main() {
    printf("Hello world\n");
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:45:31