Kas ir Makefile un kā tas darbojas Linux?

Kas ir Makefile un kā tas darbojas Linux

Si vēlaties palaist vai atjaunināt uzdevumu, kad tiek atjaunināti noteikti faili, make lietderība var būt noderīga. Izveidošanas utilītai nepieciešams fails makefile, kas nosaka izpildāmo uzdevumu kopumu.

Šis nosaukums daudziem no jums izklausīsies pazīstams, jo jūs, iespējams, izmantojāt zīmējumu, lai izveidotu programmu no avota koda. Lielākā daļa atvērtā koda projektu izmanto make, lai sastādītu galīgo izpildāmo bināro failu, kuru var instalēt, izmantojot make install.

Šoreiz sapratīsim, kā šāda veida faili darbojas Linux.

Makefile fails Tas būtībā tiek izdalīts četros paziņojumu pamatveidos:

  • Komentāri
  • Mainīgie
  • Skaidri noteikumi.
  • Netiešie noteikumi.

Noteiktie noteikumi nosaka, kuri faili ir atkarīgi no citiem failiem, kā arī komandas, kas nepieciešamas konkrēta faila sastādīšanai.

Kaut arī netiešie ir līdzīgi tiešajiem, bet ar atšķirību tie norāda izpildāmās komandas, taču, lai noteiktu, kuras komandas izpildīt, tiek izmantoti failu paplašinājumi.

Šajā piemērā mēs neizmantosim pēdējos divus, Mēs sāksim tikai ar termināļa drukāšanu klasiskajā "Hello World".

Šim nolūkam mēs izveidosim tukšu direktoriju ar vēlamo vārdu.

Šajā gadījumā sauksim to par "example-make" un tajā Mēs izveidosim šāda faila makefailu:

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

Tagad palaidiet failu, direktorijā ierakstot make, izeja būs:

make
echo "Hola Mundo"
Hola Mundo

Kā redzat, kad makefile tika izpildīts, tiek parādīta komandas atbalss "Hello World", kam seko faktiskās komandas izeja. Mēs bieži to nevēlamies. Lai nomāktu šo izvadi, palaižot make, pirms atbalss vienkārši pievienojiet "@":

Praktiskais piemērs tam ir:

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

Tagad mēs varam turpināt palaist makefailu vēlreiz. Tieši šai izejai vajadzētu parādīt:

make
Hola Mundo

Tas ir diezgan vienkārši. Bet, kā jūs zināt, makefaili satur daudz ko, no kuriem tie norāda sekojošās sekvences.

Šim failam mēs varam pievienot dažas vienkāršas sekvences.

Ko mēs rediģēsim failu šādi:

#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

Pārkārtojot makefailu, tas tikai izpildīs pirmo mērķi. Tas ir tāpēc, ka tikai pirmais mērķis makefile ir noklusējuma mērķis.

Lai izpilde tiktu veikta secīgi tas ir jānorāda failā ar "visi". "Tur" pienākums ir saukt citus mērķus.

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

Jūs varat turpināt palaist make atkal, un jūs redzēsiet, ka direktorijā iekšpusē tiek saukts fails "File.txt".

Tādā pašā veidā makefile failā ir iespējams izpildīt mērķi, tas parasti tiek ļoti izmantots.

Mēs modificēsim savu failu un beigās pievienosim:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Varat atkārtoti izveidot un tas atjaunos txt failu. Kā redzēsiet, tas darīs to pašu, ko iepriekšējā reizē. Bet tagad mēs izpildīsim mērķi, kas atrodas makefile failā.

Mēs to darām ar:

make clean

Tādējādi mēs varam uzzināt kaut ko diezgan vienkāršu par failu veidošanu un to, kā tie var būt diezgan noderīgi, ja mēs vēlamies automatizēt dažas lietas.

Acīmredzot jūs varat izveidot lielāku un sarežģītāku failu, taču tas ir tikai piemērs iesācējiem (es iekļauju sevi), kuri sāk iepazīt, kā tas darbojas.


6 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   arg0s teica

    Ļoti interesants raksts. Jautājums ... tas, ko jūs saucat par "mainīgajiem", nebūtu funkcijas vai metodes?

    1.    Deivids Naranjo teica

      Patiesībā, jā, draugs, paldies par labojumu.
      Priekā! 🙂

  2.   Peter teica

    Lieliski, es ceru, ka jūs turpināsiet rakties.

  3.   manuelalcocer teica

    Nu, ne viena, ne otra lieta, https://www.gnu.org/software/make/manual/make.html, ir "mērķi"

  4.   manuelalcocer teica

    noteikumi

  5.   Sebass teica

    Cerams, ka viņi turpina izskaidrot šādas ikdienas lietojumprogrammas "visuresošas un elementāras" lietas, kuras Linux nekad neizraisa ar tādu pašu aizraušanos, kā tiek sludinātas šīs "priekšrocības un darbība".