Kas yra „Makefile“ ir kaip jis veikia „Linux“ sistemoje?

Kas yra „Makefile“ ir kaip jis veikia „Linux“

Si norite paleisti arba atnaujinti užduotį, kai atnaujinami tam tikri failai, „make“ įrankis gali būti naudingas. „Make“ naudai reikalingas failas „makefile“, kuris apibrėžia vykdytinų užduočių rinkinį.

Šis vardas daugeliui jūsų nuskambės pažįstamas, nes galbūt naudojote „make“, kad sukurtumėte programą iš šaltinio kodo. Daugelis atvirojo kodo projektų naudoja „make“, kad sukompiliuotų galutinį vykdomąjį dvejetainį failą, kurį galima įdiegti naudojant „make install“.

Šį kartą mes suprasime, kaip tokio tipo failai veikia „Linux“.

Makefile failas Iš esmės jis išskiriamas į keturis pagrindinius teiginių tipus:

  • Komentarai
  • Kintamieji
  • Aiškios taisyklės.
  • Numanomos taisyklės.

Aiškios taisyklės nurodo, kurie failai priklauso nuo kitų failų, taip pat komandos, reikalingos tam tikram failui kompiliuoti.

Nors numanomieji yra panašūs į aiškius, tačiau skirtingai jie nurodo komandas, kurias reikia vykdyti, tačiau naudojasi failų plėtiniais, kad nustatytų, kurias komandas vykdyti.

Šiame pavyzdyje nenaudosime šių dviejų paskutinių, Pradėsime tik nuo terminalo spausdinimo klasikinio „Hello World“.

Tam mes sukursime tuščią katalogą su norimu pavadinimu.

Šiuo atveju pavadinkime tai „pavyzdžiu-pasidaryk“ ir per tai mes sukursime šio turinio failą:

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

Dabar paleiskite failą įvesdami kataloge make, išvestis bus:

make
echo "Hola Mundo"
Hola Mundo

Kaip matote, kai buvo paleistas makefile, rodomas komandos aidas „Hello World“, po kurio seka faktinės komandos išvestis. Mes to dažnai nenorime. Norėdami sustabdyti šią išvestį, kai paleidžiate „make“, prieš aidą tiesiog pridėkite „@“:

Praktinis to pavyzdys:

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

Dabar mes galime vėl paleisti makefile. Tiesiog tai turėtų parodyti:

make
Hola Mundo

Tai gana paprasta. Bet kaip žinote, makefailuose yra daug dalykų, iš kurių jie nurodo sekas, kurių reikia laikytis.

Prie šio failo galime pridėti keletą paprastų sekų.

redaguosime failą taip:

#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

Paleisdami makefile, tai įgyvendins tik pirmąjį tikslą. Taip yra todėl, kad tik pirmasis taikinys „makefile“ yra numatytasis taikinys.

Bėgti iš eilės būtina pažymėti byloje su „viskas“. Kviesti kitus taikinius yra „ten“ pareiga.

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

Galite vėl paleisti „make“ ir pamatysite, kad kataloge vadinamas failas "File.txt".

Taip pat galima atlikti tikslą makefile faile, tai paprastai yra labai naudojama.

Mes pakeisime savo failą ir pabaigoje pridėsime:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Galite dar kartą paleisti „make“ ir jis atkurs txt failą. Kaip pamatysite, tai padarys tą patį, ką ir ankstesnį kartą. Bet dabar mes vykdysime tikslą, esantį makefile faile.

Tai darome su:

make clean

Tokiu būdu mes galime sužinoti ką nors gana paprasto apie failų kūrimą ir kaip jie gali būti gana naudingi, jei norime automatizuoti kai kuriuos dalykus.

Akivaizdu, kad galite sukurti didesnį ir sudėtingesnį failą, tačiau tai tik pavyzdys naujokams (aš įtraukiu save), kurie susipažįsta, kaip tai veikia.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   arg0s sakė

    Labai įdomus straipsnis. Klausimas ... tai, ką vadinate „kintamaisiais“, nebūtų funkcijos ar metodai?

    1.    Davidas naranjo sakė

      Tiesą sakant, taip, mano drauge, ačiū už pataisymą.
      Cheers! 🙂

  2.   pedro sakė

    Puiku, tikiuosi, kad kassi toliau.

  3.   rankinis alkoholis sakė

    Na, nei vienas, nei kitas dalykas, https://www.gnu.org/software/make/manual/make.htmlyra „taikiniai“

  4.   rankinis alkoholis sakė

    taisyklės

  5.   sebas sakė

    Tikimės, kad jie ir toliau aiškins tokius kasdienio „Linux“ valdymo „visur esančius ir elementarius“ dalykus, kurių niekas niekada nepaaiškina tokia pačia aistra, kaip skelbiami tie „privalumai ir operacija“.