2015-06-09 4 views
1

Я пытался изучить make-файлы, и я не могу заставить правила вывода работать.Правила вывода makefile «.c.o»

Как мне известно, правило вывода ниже сделает файл * .o из * .c файла.

.c.o : 
    $(CC) $(CFLAGS) –c [email protected] 

Всякий раз, когда я пытался печатать в «сделать temp.c», он говорит, что не найдены целей и когда я пытался сделать «сделать темп», он использует по умолчанию сделать команду, которая встроена внутри производства. Как я могу заставить make-файлы использовать мои правила вывода?

+4

'make temp.c' означает« попытаться сделать «temp.c'», но 'temp.c' уже существует. Попробуйте 'make temp.o'. –

+1

Если вы хотите, чтобы 'make temp' использовал ваше правило, вам нужно избавиться от правила' .c: 'по умолчанию (синтаксис GNU:'%:% .c'), который имеет приоритет - просто добавьте это как строку без каких-либо действий для этого. –

+0

Спасибо Оливер и Крис, которые работали – chettyharish

ответ

2

Уметь делают temp.o данный temp.c, правило должно быть:

.c.o: 
    $(CC) $(CFLAGS) -c -o [email protected] $< 

или, если вы используете GNU Make,

%.o: %.c: 
    $(CC) $(CFLAGS) -c -o [email protected] $< 
1

марка должна использоваться файл грим.

Какое имя файла вашего файла?

делают только будет, автоматически найти «Makefile» и «Makefile»

Тогда вы можете написать командную строку как:

make myTarget 

Если вы использовали любое другое имя, то вам нужно напишите эту командную строку как:

make -f myMakefile myTarget 
Смежные вопросы