忍者中的词法错误是啥意思?

Posted

技术标签:

【中文标题】忍者中的词法错误是啥意思?【英文标题】:What does lexing error mean in ninja?忍者中的词法错误是什么意思? 【发布时间】:2016-09-28 23:52:26 【问题描述】:

我是第一次使用 ninja 构建程序。我从 cmd 运行命令“ninja -f hello.c”,但收到错误“ninja: error: hello.c:1: lexing error”。为什么会出现这种情况?这是我的 build.ninja 文件:

# build.ninja
cc     = clang
cflags = -Weverything

rule compile
command = $cc $cflags -c $in -o $out

rule link
command = $cc $in -o $out

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

default hello

这里是 Hello.c:

#include<stdio.h>

int main()

   printf("Hello World");


【问题讨论】:

main() -> int main() 这并没有解决问题。 【参考方案1】:

我会说您正在尝试使用 .c 文件,您需要 build.ninja 作为构建的输入(因此 ninja 抱怨您的构建描述文件的语法)。

查看-f选项说明:

usage: ninja [options] [targets...]
...
  -f FILE  specify input build file [default=build.ninja]

因此,如果您想选择要构建的目标,请不要指定-f

参考

The Ninja build system

【讨论】:

以上是关于忍者中的词法错误是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Velocity 模板语言中词法正确的语句是啥

忍者框架中的表未映射错误

Rails - 演示者中的 Helper Singleton 和 Rails Route Helpers

运行时错误中的“值不在预期范围内”是啥意思?

这些错误是啥意思? django中的mysql

H2 数据库 - 错误消息中的 SELECTIVITY 是啥意思