ПредишенСледващото

направи - една програма, която автоматизира процеса на конвертиране на файлове от една форма в друга. Най-често това е компилация от изходния код на обектните файлове и последващо споразумение в изпълними файлове или библиотеки.

Полезността използва специални грим-файлове, които показват зависимостта от един на друг на файлове и правила за тяхното удовлетворение. Въз основа на информация за последната промяна на всеки да направи файл дефинира и започва необходимите програми.

Преди създаването на грим система за изграждане (компилация) Unix софтуер обикновено се състои от съвкупност от черупки скриптове, придружаващи код.

направите е създаден от Stuart Фелдман (Stuart Фелдман) през 1977 г. в Bell Labs.

В момента има много инструменти за проследяване на зависимости, но правят - един от най-разпространените, най-вече поради факта, че той е включен в Unix, като се започне с версия PWB / UNIX (Workbench английски програмист.), Което съдържа инструменти за разработка на софтуер софтуер.

Има няколко версии на грим. на базата на оригиналното решение или писмено от нулата, като се използват същите файлови формати, както и основните принципи и алгоритми, както и съдържа някои подобрения и разширяване. Например:

  • BSD грим. въз основа на работата на Адам де Бур (Адам де бурски) правят над версия. с възможност за монтаж паралелно; в една или друга форма преминава в FreeBSD, NetBSD и OpenBSD.
  • GNU правят - е включена в повечето Линукс дистрибуции и често се използва в комбинация с натрупването система GNU.

POSIX стандарт включва основни характеристики правят полезност. с различна степен на съвместимост, прилагани в различни версии направи. Като правило, прости на грим файлове могат да се използват успешно в различните версии на грим.

Ако не е посочен опцията -f, името по подразбиране за грим файл - Makefile (въпреки това, в различни изпълнения правят различна от тази, може да бъде проверена, както и други файлове, като например GNUmakefile).

направи грим отваря файла, пише правилата и изпълнява командите, необходими за създаването на определен целта.

Стандартни цели за монтаж GNU дистрибуции:

По време на монтажа често се използват BSD приложения:

  • зависи - съставят / подравняване на зависимост
Make-файл

Програмата за грим изпълнява команди в съответствие с правилата, посочени в специален файл. Този файл се нарича Makefile (Makefile, Makefile). Като общо правило, грим файл описва как да се съберат и да се свърже програмата.

грим файл се състои от правила и променливи. Правила имат следния синтаксис:

Правило е набор от команди, чието изпълнение ще доведе до монтажни цели файлове от файлови подпори.

Обикновено съобщава направи. че файловете, получени в резултат на работни екипи (целите) са зависими от съответните файлови подпори. направи не проверява и не използва файл предпоставка съдържание, обаче, да се уточни на файлове подпори списък се изисква само да се уверете, че имате тези файлове, преди изпълнение на команди и проследяване на зависимостите между файловете.

Обикновено целта е името на файла, който се генерира в резултат на работата на тези екипи. Целта може да бъде на името на действие, за да се извършва от командата (например, целта чисти в компилация програми грим файлове обикновено премахва всички файлове, генерирани по време на компилация).

Линии, в която екипът записани. Трябва да започнем с това знак за табулация.

Нека разгледаме една проста програма, С. Нека програмата Програмата се състои от двойка кодови файлове - Стартиране и lib.c и един удар с глава на файла - defines.h, което е свързано както с код файла. Поради това е необходимо да се създаде програма от двойките (Стартиране defines.h) и (lib.c defines.h), за да се създаде обект файлове и main.o lib.o, и след това да ги събере в програмата. При сглобяването на ръководството е необходимо да се даде следните команди:

Ако в процеса на разработване на програми defines.h файл ще бъдат изменени, за да се изисква прекомпилиране и свързване на двата файла, и ако lib.c на промяна, а след това прекомпилирате main.o не може да изпълнява.

По този начин, за всеки файл, който ние трябва да се в процеса на компилация е необходимо да се определят въз основа на кои файлове и от това, което той създава екип. Програмата за изработка на базата на тези данни, прави следното:

  • Тя събира тази информация, в правилната последователност от команди за получаване на необходимите изходни файлове;
  • и инициира създаването на желания файл само ако файлът не съществува, или е по-стара от файловете, на които това зависи.

Освен ако не е изрично посочва целта, когато стартирате грим, тя ще бъде обработена първия гол в грим файл, чието име не започва с "." Характер.

За да програмирате на програмата е достатъчно, за да напише следващия грим файл:

Заслужава да се отбележи редица функции. Името на втория гол двата файла и за същата цел не е уточнено компилация команда. Освен това никъде не е изрично предвидено зависимост обектните файлове от «* .c» -files. Фактът, че програмата за грим има предварително зададено правило за файлове с определени разширения. Така че, за целите, файлът обект (разширение ".o"), когато открие съответния файл с разширение ".c" компилатор "сс-с" ще се нарича уточняване на параметрите на ".c" файла и след това всички зависимости файлове.

Синтаксисът за определяне на променливи:

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

Трябва да се отбележи, че при изчисляването на стойността на променливите се появява само по време на употреба (така нареченото мързеливо оценка). Така например, в събранието на целта всички изброени грим файл, за да линия на екрана «Какво?» Ще бъдат показани.

Да предположим, че проектът да добавите втори удар с глава на lib.h, която е включена само в lib.c. Тогава грим файл ще се увеличи с един ред:

Така, целеви файл може да бъде определен за няколко цели. В този случай, в списъка на зависимости за файлът ще бъде съставен от списъците на зависимости на всички цели, за които участва, за създаването веднъж файла ще бъдат произведени.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!