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

Я впервые использую ниндзя для создания программы. Я запускаю команду '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");

}

1 ответ

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

Увидеть -f описание варианта:

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

Так что не уточняйте -f если вы хотите выбрать цель для сборки.

Ссылка

Другие вопросы по тегам