Я работаю над make-файлом на OS X, и у меня возникают проблемы. Я сделал все, как должен (я думаю), но только часть его работает. Когда я пытаюсь:Проблемы с Makefile на Mac OS X: не найдено цели
make file1
или:
make file2
все кажется нормально, но когда я пытаюсь:
make all
или:
make clean
я типичный:
*** No rule to make target
Вот код, я надеюсь, что вы можете определить вопрос (ы):
CC = gcc
CFLAGS=-Wall
FILES=file1 file2
all: $(FILES)
file1: file1.c
$(CC) $(CFLAGS) file1.c -o file1
file2: file2.c
$(CC) $(CFLAGS) file2.c -o file2
clean:
$(RM) $(FILES)
Ура!
Нет очевидной причины, по которой показанный синтаксис может вызвать эту проблему, поэтому я подозреваю, что 'make file1' работает без какого-либо make-файла и придумывает правило по умолчанию для компиляции (и, вероятно, не использует' Wall' при компиляции). Как называется созданный файл makefile? –
makefile называется makefile, и вы действительно правы: '-Wall' не используется (я только что заметил) – TanguyH
Это любопытно.Посмотрите на имя: 'ls m * | od -c'. Посмотрите, есть ли буквы, которые вы ожидаете, и нет конца в конце имени или чего-то такого неприятного. Но наблюдение «no' -Wall »практически подтверждает, что проблема связана с именем« makefile », хотя пока неясно, почему он не работает. Вы можете попробовать «make -f makefile all» и посмотреть, не имеет значения. –