2

我第一次使用忍者构建程序。我从 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");

}
4

1 回答 1

2

我会说您正在尝试获取一个.c需要 abuild.ninja作为构建输入的文件(因此ninja抱怨构建描述文件的语法)。

-f选项说明:

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

所以不要指定-f是否要选择要构建的目标。

参考

于 2016-09-30T06:39:58.750 回答