2012-06-27 4 views
0

Где мы помещаем все в Make-файлы?Где находится «Все» в Makefile?

У меня был аналогичный вопрос earlier, но мне нужно было немного больше деталей. Я также посмотрел на GNU make manual, но потерялся в горах документации. Я попробовал googles, но не нашел хорошего примера. Итак, я сделал то, что было последним, и попытался понять это, взломав сам Makefile. У меня есть:

CC=gcc 
CFLAGS=-Wall -g 

clean: 
rm -f all: ex1 

Это не компилировать мой EX1 в С. Кроме того, если бы я хотел, чтобы добавить больше к этому файлу макияж. Как и ex1, ex2, нужно что-то делать. Я бы просто положил все сверху и повторил

rm - f whatever 

линия внизу чистая?

Цените свою помощь и помощь. Терпение тоже ценилось.

ответ

3

all на самом деле ничего особенного, просто имя цели обычно используется. Чтобы он работал лучше всего, он должен стать первой целью в файле. Это делает его целевой по умолчанию, а gmake работает так же, как gmake all.

Обычно цель all имеет зависимости, которые должны быть построены. Например.

all: myexe 

rm связана с clean цели (что тоже ничего особенного, просто название обычно используется). Вы определяете это следующим образом:

clean: 
    rm -f myexe 

Это делает его удалить myexe когда gmake clean запускается. Если makefile создает другие файлы, они также должны быть указаны там.

Существует гораздо больше сведений о make-файлах. Обычно вы должны использовать переменные и правила шаблонов, которые помогут вам избежать повторения. Но это гораздо больше, чем просто описать простой ответ.

+0

Когда вы говорите о добавлении дополнительных файлов. Я пробовал все: myexe1 myexe2 и все: myexe1, myexe2. Что мне здесь не хватает? Я почти получил это, и как только я получу ответ, он может рассмотреть весь этот вопрос, как ответил. Благодаря! – GeekyOmega

+0

Определение 'all: myexe1 myexe2' является хорошим, но только говорит' make', что он должен построить эти два исполняемых файла. Вам также необходимо предоставить правила для создания 'myexe1' и' myexe2', но это выходит за рамки этого вопроса. Maheybe [эта ссылка] (http://mcs.mines.edu/Courses/csci262/INFO/Makefile_Quick_Reference.html) может помочь. – ugoren

+0

Спасибо за ваш ответ! – GeekyOmega

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