2015-03-16 2 views
1

Я пытаюсь запустить make-файл, который компилирует эти программы C одновременно.Makefile say Missing Operator

CC=gcc 
CFLAGS=-I. 
DEPS = queue.h 

all: \threadss 

threadss: thread.o queueImp.o 
    $(CC) thread.o queueImp.o -o threadss 

thread.o: thread.c 
    $(CC) $(CFLAGS) threads.c 

thread.o: queueImp.c 
    $(CC) $(CFLAGS) queueImp.c 

clean: 
    rm -rf *o threadss 

Однако возвращается следующее сообщение об ошибке:

Makefile:8: *** missing separator. Stop. 

Пожалуйста, помогите мне решить эту проблему. Я использую среду unix.

+0

'' '' '' все: \ threadss' не должно быть. – mch

+0

также нет указаний на то, что 'DEPS' используется вообще, обычно вам не нужно указывать правила для объектных файлов (* .o), поскольку правила неявны, и ваше чистое правило должно удалить * .o (not * o, поскольку он слишком широк) – dvhh

ответ

4

makefile нуждается в tab перед каждой командой правила. Пожалуйста, убедитесь, что is a tab [не пробелы] до $(CC) thread.o queueImp.o -o threadss и другие команды.

Примечание: Обычно чистая команда используется для удаления объектных файлов с расширениями .o. возможно, вы хотите, чтобы это было

rm -rf *.o threadss 
     ^
     | 

предназначено для фактической цели.

Смежные вопросы