Запуск целей Makefile - PullRequest
       1

Запуск целей Makefile

1 голос
/ 30 июня 2011

Я пытаюсь «запустить» компиляцию, сделав все зависимости в списке элементов, которые сами являются целью.предположить, что это возможноЯ не могу заставить его скомпилироваться.

make: Nothing to be done for `all'.

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

Обратный порядок первых двух строк, например, так:

OBJECTS = foo.o bar.o

all:    $(OBJECTS)

В вашем примере, когда Make получает правило all, OBJECTS еще не определено, поэтому оно разрешаетсяна это:

all:

Make видит правило без команд и предварительных условий - ничего не поделаешь.

1 голос
/ 30 июня 2011

Вы можете сделать что-то вроде

 %.o: %.c
      $(CC) $(CFLAGS) -c $< -o $@

Это означает:

Чтобы создать файл .o, нам нужен файл .c с тем же именем (представленным %). Команда для создания файла .o - это имя компилятора C $(CC), за которым следуют все флаги компилятора $(CFLAGS), затем -c и т. Д. $< - это имя первой предпосылки ($^ это имена всех предпосылок, если вы этого хотите), а $@ это имя цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...