Makefile деген эмне жана ал Linux ичинде кандайча иштейт?

Makefile деген эмне жана ал Linux ичинде кандайча иштейт

Si кээ бир файлдар жаңырганда тапшырманы иштетүүнү же жаңыртууну каалайсыз, make Utility ыңгайлуу болушу мүмкүн. Make утилитага аткарыла турган милдеттердин жыйындысын аныктаган файл, makefile талап кылынат.

Бул ысым көпчүлүгүңүзгө тааныш угулат, анткени сиз программаны баштапкы коддон түзүүдө колдонгон чыгарсыз. Ачык булактуу долбоорлордун көпчүлүгү make install аркылуу орнотула турган акыркы аткарыла турган бинардык файлды түзүү үчүн.

Бул жолу биз файлдын бул түрү Linux ичинде кандайча иштей тургандыгын түшүнөбүз.

Makefile файлы Ал негизинен төрт негизги билдирүү түрүнө бөлүнөт:

  • комментарийлер
  • Variables
  • Ачык эрежелер.
  • Жашыруун эрежелер.

Ачык Эрежелер кайсы файлдар башка файлдарга көз каранды экендигин, ошондой эле белгилүү бир файлды түзүү үчүн керектүү буйруктарды айтат.

Айкындары ачык-айкынына окшош, бирок айырмачылыгы менен аткарууга буйруктарды көрсөтүшөт, бирок файлдын кеңейтүүлөрүн колдонуп, кайсы буйруктарды аткара тургандыгын аныкташат.

Бул мисалда биз ушул акыркы экөөнү колдонбойбуз, Биз терминалга классикалык "Салам дүйнөсүн" басып чыгаруудан гана баштайбыз.

Бул үчүн сиз каалаган ысым менен бош каталог түзмөкчүбүз.

Бул учурда аны "example-make" деп атайлы жана анын чегинде Биз төмөнкү мазмундагы макияжды түзгөнү жатабыз:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
echo "Hola Mundo"

азыр каталогдун ичине make деп терип файлды иштетсеңиз, төмөнкүдөй жыйынтык чыгат:

make
echo "Hola Mundo"
Hola Mundo

Makefile качан аткарылгандыгын көрүп тургандай, "Салам Дүйнө" жаңырыгы, андан кийин чыныгы буйруктун чыгышы көрсөтүлөт. Биз көбүнчө муну каалабайбыз. Make чуркап жатканда, бул чыгарылышты басуу үчүн, echo алдында "@" белгисин кошуңуз:

Мунун практикалык мисалы:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"

азыр биз makefileди кайрадан иштете алабыз. Мунун натыйжасы көрсөтүшү керек:

make
Hola Mundo

Бул абдан жөнөкөй. Бирок өзүңүздөр билесиздер, макияж файлдарында көп нерселер камтылган, алардын артынан кийинки ырааттуулук көрсөтүлөт.

Бул файлга жөнөкөй ырааттуулуктарды кошо алабыз.

Эмне биз файлды төмөнкүдөй түзөтүүнү жасайбыз:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Макияжды иштеп жатканда, бул биринчи максатты гана жүзөгө ашырат. Себеби makefileдеги биринчи максат гана демейки бута болуп саналат.

Аткаруу ырааттуулукта жүргүзүлүшү керек аны "all" менен файлдын ичинде көрсөтүү керек. Башка максаттарды чакыруу "ошол жакта" болот.

all: esta_es_una_variable crear_un_archivo_nuevo
#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Кайра жасоону уланта берсеңиз болот, ошондо каталогдун ичинде файл деп аталат "File.txt".

Ошо сыяктуу эле, makefile файлынын ичиндеги максатты аткарууга мүмкүнчүлүк бар, бул жалпысынан кеңири колдонулат.

Биз файлды өзгөртүп, аягында төмөнкүлөрдү кошумчалайбыз:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Сиз жасай аласыз жана ал txt файлын кайра жаратат. Көрүнүп тургандай, ал мурунку мезгилдегидей эле нерсени жасайт. Азыр болсо, биз makefile файлынын ичиндеги максатты аткарабыз.

Биз муну төмөнкүлөр менен жасайбыз:

make clean

Ушунун жардамы менен биз файлдарды жасоо боюнча бир топ жөнөкөй нерселерди жана кээ бир нерселерди автоматташтырууну кааласак, алар кандайча пайдалуу боло тургандыгын биле алабыз.

Албетте, сиз чоңураак жана татаал файлды түзсөңүз болот, бирок бул кандайча иштээрин билип жаткан жаңыларга (мен өзүмдү да кошом) жөнөкөй мисал.


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

6 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   Arg0s ал мындай деди:

    Абдан кызыктуу макала. Суроо ... сиз "өзгөрмө" деп атаган нерсе функциялар же методдор болбойт беле?

    1.    David naranjo ал мындай деди:

      Чындыгында, ооба досум, оңдоп бергениңе рахмат.
      Ура! 🙂

  2.   Педро ал мындай деди:

    Мыкты, сиз казып жүрө бересиз деп ишенем.

  3.   ManuelALcocer ал мындай деди:

    Ооба, бир нерсе да, экинчиси да, https://www.gnu.org/software/make/manual/make.html, "бута"

  4.   ManuelALcocer ал мындай деди:

    эрежелер

  5.   Себас ал мындай деди:

    Алар ушул сыяктуу "ар тараптуу жана башталгыч" нерселерди, Linuxтун күнүмдүк иштөөсүн түшүндүрүп беришет деп үмүттөнөбүз, аны эч ким эч качан ошол "артыкчылыктар менен иштөөнүн" кандайча үгүттөлгөнү менен түшүндүрбөйт.