Что не так в этом файле make? - PullRequest
1 голос
/ 28 марта 2012

Привет, ребята. Я пытаюсь создать один простой файл make и выполнить его в Cygwin.Это содержимое файла

test: test.c
       gcc -c test.c -O3 -Wall -I.
test1: test1.c
              gcc -c test1.c -O3 -Wall -I.

Когда я выполняю это, компилируется только первый файл, а не второй.Может кто-нибудь объяснить, почему и как это правильно?

Ответы [ 3 ]

6 голосов
/ 28 марта 2012

Похоже, ваши отступы немного перепутаны. Пробел в начале этих строк должен быть одним символом табуляции.

Также:

По умолчанию make запускается с первой цели

Вам нужно будет указать цель, набрав make test1 в командной строке, если вы хотите скомпилировать второй файл.

Также обычно добавляют цель с именем all. Вы можете добавить это вверху вашего файла:

all: test test1
0 голосов
/ 28 марта 2012

Вы забыли флаг -o:

test1: test1.c
        cc -O3 -Wall -I. -o test1 test1.c

Или даже лучше:

test1: test1.c
         cc -O3 -Wall -I. -o $@ $?

Или, еще короче: (доверяя встроенным макросам)

CFLAGS += -O3 -Wall -I.

test1: test1.c

ПРИМЕЧАНИЕ. Я намеренно опускаю тест: часть test.c.Присвоение имени программе test является путаницей.

0 голосов
/ 28 марта 2012

Попробуйте сопоставить начальный пробел во втором случае с первым.Сделать смешно о правильном отступе

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