Что означает ошибка лексирования в ниндзя?

Я использую ниндзя для создания программы в первый раз. Я запускаю команду «ninja -f hello.c» из cmd, но получаю сообщение об ошибке «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");

}

person Shani de Leeuw    schedule 28.09.2016    source источник
comment
Это не решило проблему.   -  person Shani de Leeuw    schedule 29.09.2016


Ответы (1)


Я бы сказал, что вы пытаетесь взять файл .c, где вам понадобится build.ninja в качестве входных данных для вашей сборки (поэтому ninja жалуется на синтаксис вашего файла описания сборки).

См. описание опции -f:

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

Поэтому не указывайте -f, если хотите выбрать цель для сборки.

Справочник

person Florian    schedule 30.09.2016