Çfarë është një Makefile dhe si funksionon brenda Linux?

Çfarë është një Makefile dhe si funksionon brenda Linux

Si duan të ekzekutojnë ose azhurnojnë një detyrë kur azhurnohen skedarë të caktuar, Shërbimi make mund të jetë i dobishëm. Shërbimi make kërkon një skedar, makefile, i cili përcakton një sërë detyrash që duhen ekzekutuar.

Ky emër do të tingëllojë i njohur për shumë prej jush pasi mund të keni përdorur të bëni për të përpiluar një program nga kodi burimor. Shumica e projekteve me burim të hapur përdorin make për të përpiluar një binar përfundimtar të ekzekutueshëm, i cili mund të instalohet duke përdorur make install.

Me këtë rast ne do të kuptojmë se si funksionon ky lloj skedari brenda Linux.

Një skedar makefile Në parim dallohet në katër lloje themelore të deklaratave:

  • Komente
  • Variablat
  • Rregulla të qarta.
  • Rregulla të nënkuptuara.

Rregullat e qarta tregojnë se cilat skedarë varen nga skedarët e tjerë, si dhe komandat e kërkuara për të përpiluar një skedar të veçantë.

Ndërsa ato të nënkuptuara janë të ngjashme me ato të qarta, por me ndryshimin ato tregojnë komandat për të ekzekutuar, por përdor përdor zgjerimet e skedarit për të përcaktuar se cilat komanda duhet të ekzekutohen.

Në këtë shembull ne nuk do t'i përdorim këto dy të fundit, Ne do të fillojmë vetëm duke shtypur klasiken "Përshëndetje Botërore" në terminal.

Për këtë ne do të krijojmë një direktori bosh me emrin që ju dëshironi.

Në këtë rast le ta quajmë "bëj shembull" dhe brenda kësaj Ne do të krijojmë një formular me përmbajtjen e mëposhtme:

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

tani ekzekutoni skedarin duke shtypur make brenda direktorisë, rezultati do të jetë:

make
echo "Hola Mundo"
Hola Mundo

Siç mund ta shihni kur u ekzekutua makefile, shfaqet komanda jehonë "Hello World", e ndjekur nga rezultati i komandës aktuale. Ne shpesh nuk e duam atë. Për të shtypur këtë dalje kur ekzekutoni make, thjesht shtoni një "@" para jehonës:

Shembulli praktik i kësaj është:

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

tani ne mund të vazhdojmë të ekzekutojmë përsëri formularin. Rezultati vetëm kjo duhet të tregojë:

make
Hola Mundo

Kjo është mjaft themelore. Por siç mund ta dini, makefiles përmbajnë shumë gjëra, nga të cilat ato tregojnë sekuencat që duhen ndjekur.

Ne mund të shtojmë disa sekuenca të thjeshta në këtë skedar.

Çfarë ne do të bëjmë është të modifikojmë skedarin si më poshtë:

#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

Kur ribotoni formularin, kjo do të ekzekutojë vetëm objektivin e parë. Kjo sepse vetëm objektivi i parë në makefile është caku i paracaktuar.

Që ekzekutimi të kryhet në rend është e nevojshme ta tregoni atë brenda skedarit me "të gjithë". Theshtë përgjegjësia e "atje" për të thirrur objektiva të tjerë.

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

Ju mund të vazhdoni të ekzekutoni përsëri make dhe do të shihni që brenda direktorisë një skedar quhet "Skedar.txt".

Në të njëjtën mënyrë është e mundur të jesh në gjendje të ekzekutosh një objektiv brenda skedarit makefile, kjo është përgjithësisht shumë e përdorur.

Ne do të modifikojmë skedarin tonë dhe do të shtojmë sa vijon në fund:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Ju mund të përsëritni krijimin dhe ajo do të rikrijojë skedarin txt. Siç mund ta shihni, ajo do të bëjë të njëjtën gjë si herën e mëparshme. Por tani ne do të ekzekutojmë objektivin që është brenda skedarit makefile.

Ne e bëjmë këtë me:

make clean

Me këtë ne mund të mësojmë diçka mjaft themelore në lidhje me krijimin e skedarëve dhe si ato mund të jenë mjaft të dobishme nëse duam të automatizojmë disa gjëra.

Padyshim që ju mund të ndërtoni një skedar më të madh dhe më kompleks, por ky është një shembull i thjeshtë për të sapoardhurit (unë përfshij edhe veten time) të cilët po mësojnë se si funksionon kjo.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   arg0s dijo

    Artikull shumë interesant. Një pyetje ... ato që ju i quani "variabla" nuk do të ishin funksione apo metoda?

    1.    David naranjo dijo

      Në fakt, po shoku im, faleminderit për korrigjimin.
      Gëzuar! 🙂

  2.   Peter dijo

    Shkëlqyeshëm, shpresoj të vazhdoni të gërmoni.

  3.   manuelalcocer dijo

    Epo, as një gjë, as tjetra, https://www.gnu.org/software/make/manual/make.html, janë "shënjestra"

  4.   manuelalcocer dijo

    rregullat

  5.   sebas dijo

    Shpresojmë që ata të vazhdojnë të shpjegojnë gjëra të tilla, "të pranishme dhe elementare", të funksionimit të përditshëm të Linux, të cilin askush nuk e shpjegon kurrë me të njëjtin pasion se si predikohen ato "përparësi dhe veprim".