Замолници и Фореацх у Макефиле-у

Zamolnici I Foreach U Makefile U



Датотека се увек састоји од различите врсте садржаја: било да је то обична текстуална датотека, датотека програмског кода или било који макефиле. Тип садржаја било које датотеке чини је јединственом и разликује је од других формата датотека. Управо тако, макефиле се састоји од правила која користе различите елементе за правилно обављање свог посла. Од тих елемената, постоји џокер и фореацх који су потребни да би се извршило нешто јединствено и екстра. У оквиру овог водича ћемо разговарати о моћи џокерских знакова и фореацх-а док се користе у макефилеу.

Џокерски знакови у Макефиле-у

Генерално, познато је да је џокер фактор фактор који се не може предвидети и може да преокрене ситуацију на било који могући начин. Џокерски знакови у макефиле-у се користе за обављање бонуса откривања свих могућих образаца из тренутног радног директоријума, било да је у питању датотека или било који фолдер. Ове изворне датотеке могу бити било које врсте.







Да бисте користили џокер у макефилеу, требало би да користите кључну реч „џокер“ која следи после звездице „*“ или „?“ знак и екстензију датотеке која је повезана преко тачке. Такође можете да користите „?” знак за тражење једног знака и „*“ да се подудара са било којим бројем знакова. Цела ова структура треба да се користи унутар заграда и знака „$“. На пример, декларишемо променљиву „СРЦС“ која добија своју датотеку вредности преко џокера. Овај џокер знак тражи све датотеке са шаблоном „цпп“ на крају.





Фореацх у Макефиле-у

Фореацх функција макефиле-а функционише баш као фореацх петља у програмским језицима – понављајте ставке на листи. Фореацх функција у макефиле-у обавља одређену радњу на свакој ставци листе. Овај елемент може бити променљива или било која изворна датотека. На пример, елаборирамо синтаксу функције фореацх у макефиле-у преко променљиве СОУРЦЕС која садржи листу од три изворна фајла. Функција фореацх користи ову променљиву СОУРЦЕС да креира исто име за три објектне датотеке понављањем листе изворних датотека и чувањем у другој променљивој „ОБЈЕЦТС“. Последња два реда показују како се правило макефиле може користити за креирање објектне датотеке за сваки Ц фајл након понављања.





ИЗВОРИ := филе1.ц филе2.ц филе3.ц
ОБЈЕКТИ := $ ( фореацх срц,$ ( ИЗВОРИ ) ,$ ( срц:.ц=.о ) )
$ОБЈЕЦТС : % .О: %
$ ( ЦЦ ) $ ( ЦФЛАГС ) $ < $ @

Пример 1: Коришћење џокер знакова

Да бисмо приказали илустрацију и рад џокерских знакова и фореацх функција, уводимо Ц++ датотеку. Ова датотека „салари.цпп” се покреће коришћењем заглавља „иостреам” да би се омогућило несметано коришћење улазних и излазних токова. Главни метод декларише променљиву „с“ целобројног типа и наредбу „цоут“ да тражи улазну вредност током времена извођења. Стандардни улазни ток „цин“ добија вредност од корисника током времена извршавања и чува је у променљивој „с“. „Цоут“ приказује вредност коју је корисник унео на екрану конзоле.

#инцлуде <иостреам>
користећи простор имена стд;
инт маин ( ) {
инт с;
цоут << 'Унесите плату: ' ;
једење >> с;
цоут << ' Плата: ' << с << ендл;
повратак 0 ;
}



Макефиле почињемо са променљивом „ЦКСКС“ која дефинише компајлер за Ц++, а променљива ЦКСКСФЛАГС садржи ознаке за Ц++ компајлер. Променљива ЕКСЕЦУТАБЛЕ садржи име извршне „здраво“ датотеке која се генерише након извршења макефиле-а. СРЦС променљива добија све Ц++ датотеке из тренутног директоријума користећи џокер знак „*“ да би претражила било који образац који се завршава са „.цпп“. Променљива ОБЈС садржи имена објектних датотека које треба креирати помоћу СРЦС променљиве, замењујући екстензију „цпп“ са „о“. Подразумевани циљ „све“ прави макефиле и зависи од променљиве ЕКСЕЦУТАБЛЕ.

Прво правило креира циљну „здраво“ датотеку која зависи од објектне датотеке ОБЈС променљиве (имена објектних датотека) користећи имена датотека која се генеришу преко променљиве „ОБЈС“. Друго макефиле правило генерише објектну датотеку са екстензијом „.о“ која зависи од Ц++ датотеке након компајлирања Ц++ датотеке кода. Овде је „%“ џокер знак за претрагу имена датотека било ког обрасца који се завршава са „цпп“. На крају, цлеан таргет користи своју „рм“ команду да насилно очисти новогенерисану извршну и објектну датотеку из директоријума помоћу ознаке „-ф“.

ЦКСКС = г++
ЦКСКСФЛАГС = -Зид -стд =ц++ Једанаест
ЕКСЕЦУТАБЛЕ = здраво
СРЦС = $ ( џокер * .цпп )
ОБЈС = $ ( СРЦС:.цпп=.о )
све: $ ( ЕКСЕЦУТАБЛЕ )
$ ( ЕКСЕЦУТАБЛЕ ) : $ ( ОБЈС )
$ ( ЦКСКС ) $ ( ЦКСКСФЛАГС ) $ @ $ ( ОБЈС )
% .О: % .цпп
$ ( ЦКСКС ) $ ( ЦКСКСФЛАГС ) $ < $ @
чист:
рм $ ( ЕКСЕЦУТАБЛЕ ) $ ( ОБЈС )

Након покретања инструкције „маке“, креиране су и циљне и објектне датотеке. Након извршавања извршне „здраво“ датотеке, од корисника се тражи да унесе плату и додајемо „67000“. На крају, плата се приказује назад.

направити

Пример 2: Коришћење Фореацх-а

Након употребе џокер знакова, време је да искористите функцију фореацх у макефиле-у. Остатак кода макефиле-а је исти. У реду 6 иницијализујемо другу променљиву која је „НАМЕС“ са листом од три вредности – Кате, Ким, Тим. Подразумевани циљ „све“ зависи од променљиве ЕКСЕЦУТАБЛЕ (име циљне датотеке „здраво“) и фореацх наредбе. Функција „аддпрефик“ понавља променљиву „НАМЕС“ да би динамички генерисала циљна имена тако што ставља префикс „рун_“ на почетак сваког имена на листи „НАМЕС“.

Правило у осмом реду указује на то да излазна извршна циљна датотека, тј. хелло, зависи од „ОБЈС-а“. Ознака '-о' генерише циљну излазну датотеку користећи ОБЈС. Правило у десетом реду генерише датотеку циљаног објекта користећи изворне датотеке са екстензијом „цпп“. Да би се то урадило, ознака „-ц” се користи за компајлирање изворне датотеке и генерисање повезане објектне датотеке која је неопходна за циљну генерисање. У тринаестом реду користимо променљиву ЕКСЕЦУТАБЛЕ да генеришемо излаз са различитим именима који почињу са „рун_“ као префиксом. На крају, чисти циљ и лажни циљеви ће уклонити и очистити објекте и циљне датотеке.

ЦКСКС = г++
ЦКСКСФЛАГС = -Зид -стд =ц++ Једанаест
# извршна циљна датотека
ЕКСЕЦУТАБЛЕ = здраво
СРЦС = $ ( џокер * .цпп )
ОБЈС = $ ( СРЦС:.цпп=.о )
# Листа имена
ИМЕНА = Кате Ким Тим
# Циљеви
све: $ ( ЕКСЕЦУТАБЛЕ ) $ ( аддпрефик рун_, $ ( НАМЕС ) )
$ ( ЕКСЕЦУТАБЛЕ ) : $ ( ОБЈС )
$ ( ЦКСКС ) $ ( ЦКСКСФЛАГС ) $ @ $ ( ОБЈС )
% .О: % .цпп
$ ( ЦКСКС ) $ ( ЦКСКСФЛАГС ) $ < $ @
# Креирајте мете за свако име
трцати_ % : $ ( ЕКСЕЦУТАБЛЕ )
. / $ ( ЕКСЕЦУТАБЛЕ ) $*
чист:
рм $ ( ЕКСЕЦУТАБЛЕ ) $ ( ОБЈС )
# Лажне мете
.ФОНИ: све чисто

Коришћење инструкције „маке“ генерише извршни „хелло“ циљ и покреће програм за свако име које је наведено у променљивој „НАМЕС“.

направити

Такође можете да измените свој излаз користећи име са листе са префиксом „рун_“.

Маке рун_Ким

Закључак

У овом водичу се говорило о коришћењу џокер знакова и фореацх концепата у макефиле-у, док се засебно расправљало о њиховој синтакси. Након тога, разговарали смо о примерима кода како бисмо разрадили сваки њихов рад са излазима на добијању датотека са истим екстензијама и понављању вредности у листи променљивих.