«Вэй Дуншань новое видео - Makefile анализ»

 1.Makefile решимость

1.1Makefile правила:

Target (цель) ...: Зависимый (prerequiries) ... 
<Tab> команда (команда)

  Если «зависимость» более новые, чем «целевой файл», затем выполнить «команда» регенерировать «целевой файл.»

  Два условной команда должны быть выполнена: новая зависимость, чем целевой файл, файл объект или не генерируется.

  $ @ - целевой файл, $ ^ - все зависимые файлы, $ <- Первый основан файл. 

 

  Когда команда сделает, он будет идти к текущему каталогу, чтобы найти имя файла «Makefile», и в соответствии с инструкциями для выполнения операций, создать первую цель.

  Мы не можем использовать «-f» Опция указывает файл, больше не использует файл с именем «Makefile», такие как:  

сделать -f Makefile.build 

 

 

  Мы можем использовать опцию «-C» в указанный каталог, переключиться на другой каталог идти, такие как:

сделать -C а / -f Makefile.build 

  

  Мы можем указать цель больше не генерируются по умолчанию первой цели:

сделать -C а / -f Makefile.build other_target

 

1.2 в реальном времени с переменной, переменная задержка

Определяется переменная синтаксис выглядит следующим образом

Ххх = А    // переменная задержка 
? В = ххх     // переменная задержка, назначение было успешным только тогда , когда первое определение, если бы было определено, это назначение является недействительным  C: = ххх // немедленно переменная YYY = + Д // Если D перед переменной задержкой, так что теперь переменная задержка времени; // если D находится непосредственно перед переменной, так что теперь она мгновенно переменной

  В GNU сделать присвоение переменной двумя способами: с переменной задержкой, немедленно переменная

  Makefile в «$ (объекты)» способ использовать эти переменные.

 

1.3 Экспорт переменных (экспорт)

  При составлении программы мы будем продолжать использовать « марку -C реж» , чтобы перейти в другой каталог, выполнять другую директорию в Makefile. Если вы хотите, чтобы значение переменного видно во всех каталогах, он должен экспортировать.

  Например, «CC = $ (CROSS_COMPILE) GCC», переменная CC представляет собой компилятор, весь процесс одинаков. После того, как вы определили, вы хотите использовать «экспорт CC», чтобы направлять его.

 

1.4 Makefile, можно использовать команды оболочки

TOPDIR: = $ (оболочки PWD)

  Это немедленно переменная, TOPDIR равна командными оболочки PWD результатов.

 

1.5 , как поместить первый файл сборки в мишени

  Когда команда сделает, если не указать цель, то она по умолчанию для создания первых целей.

  Таким образом, «первая цель», это очень важно. Иногда не очень удобно первой полной цели перед файлом, то могут быть размещены непосредственно перед целевого файла, а затем совершенствовать это зависит от команды позже. Например:

First_target:    // слова на передней панели 
. , , ,        // другой код, например, включать в себя другие файлы , получить обратно ххх переменную  First_target: $ (ххх) $ (YYY) // вернуться в безупречном командного файла

 

1.6 гипотетической целевой

чистый: 
    гт -f $ (скорлупа найти -name " * .o " )  гт -f $ (TARGET)

  Если случится, что файл, который называется «чистым» в текущем каталоге, а затем выполнить его не будет выполнять те команды Delete «сделать чистым».

  Затем нам нужно «очистить» цель, к «мнимый объекту», который обеспечивает реализацию «сделать чистую» команда, чтобы удалить те, конечно, может быть реализована.  

  Используйте следующее заявление для «чистой» установлен на воображаемой цели:

.PHONY: чистый

 

рекомендация

отwww.cnblogs.com/zhuangquan/p/11776138.html