Mikä on Makefile ja miten se toimii Linuxissa?

Mikä on Makefile ja miten se toimii Linuxissa

Si haluat suorittaa tai päivittää tehtävän, kun tietyt tiedostot päivitetään, make-apuohjelma voi olla hyödyllinen. Make-apuohjelma vaatii tiedoston makefile, joka määrittelee suoritettavien tehtävien joukon.

Tämä nimi kuulostaa tutulta monille teistä, koska olet ehkä käyttänyt make-ohjelmaa kokoamaan lähdekoodista ohjelman. Useimmat avoimen lähdekoodin projektit käyttävät make-tiedostoa lopullisen suoritettavan binaarin kokoamiseen, joka voidaan asentaa make install -toiminnolla.

tällä kertaa ymmärretään miten tämäntyyppiset tiedostot toimivat Linuxissa.

Makefile-tiedosto Se erotetaan periaatteessa neljään perustyyppiseen lausuntoon:

  • Comments
  • Muuttujat.
  • Selkeät säännöt.
  • Implisiittiset säännöt.

Selkeät säännöt kertovat, mitkä tiedostot riippuvat muista tiedostoista, sekä tietyn tiedoston kokoamiseen tarvittavat komennot.

Vaikka implisiittiset ovat samanlaisia ​​kuin eksplisiittiset, mutta erolla ne osoittavat komennot suoritettaviksi, mutta tekevät sen sijaan tiedostotunnisteiden avulla selvittääkseen suoritettavat komennot.

Tässä esimerkissä emme aio käyttää näitä kahta viimeistä, Aloitamme vasta tulostamalla klassisen "Hello World" terminaaliin.

Tätä varten aiomme luoda tyhjän hakemiston haluamallasi nimellä.

Tässä tapauksessa kutsutaan sitä "esimerkki-tehdä" ja tässä Aiomme luoda makefileen, jolla on seuraava sisältö:

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

Nyt Suorita tiedosto kirjoittamalla hakemistoon make, lähtö on:

make
echo "Hola Mundo"
Hola Mundo

Kuten näet, kun makefile suoritettiin, näyttöön tulee komento kaiku "Hello World", jota seuraa varsinaisen komennon lähtö. Emme usein halua sitä. Voit estää tämän ulostulon, kun suoritat make: n, lisäämällä vain "@" ennen kaikua:

Käytännön esimerkki tästä on:

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

Nyt voimme jatkaa makefileen suorittamista uudelleen. Juuri tämän pitäisi näyttää:

make
Hola Mundo

Tämä on melko yksinkertaista. Mutta kuten tiedät, makefileissä on paljon asioita, joista ne osoittavat seuraavat sekvenssit.

Voimme lisätä joitain yksinkertaisia ​​sekvenssejä tähän tiedostoon.

mikä tahansa aiomme tehdä, on muokata tiedostoa seuraavasti:

#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

Kun suoritat tiedostoa uudelleen, tämä vain toteuttaa ensimmäisen tavoitteen. Tämä johtuu siitä, että vain ensimmäinen tiedosto makefile-tiedostossa on oletuskohde.

Suorita peräkkäin se on välttämätöntä ilmoittaa tiedostossa "all". "Siellä" on vastuu kutsua muita kohteita.

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

Voit jatkaa make: n suorittamista uudelleen ja huomaat, että hakemistossa on tiedosto nimeltä "File.txt".

Samalla tavalla on mahdollista pystyä suorittamaan kohde makefile-tiedoston sisällä, tätä käytetään yleensä hyvin.

Aiomme muokata tiedostoa ja lisäämme seuraavan loppuun:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Voit suorittaa make uudelleen ja se luo txt-tiedoston uudelleen. Kuten näette, se tekee saman asian kuin edellinen kerta. Mutta nyt aiomme suorittaa kohteen, joka on makefile-tiedoston sisällä.

Teemme tämän:

make clean

Tämän avulla voimme oppia jotain melko yksinkertaista tiedostojen luomisesta ja siitä, kuinka ne voivat olla varsin hyödyllisiä, jos haluamme automatisoida joitain asioita.

Voit tietysti rakentaa suuremman ja monimutkaisemman tiedoston, mutta tämä on vain esimerkki aloittelijoille (mukaan lukien minä), jotka oppivat tuntemaan tämän toiminnan.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   arg0s dijo

    Erittäin mielenkiintoinen artikkeli. Kysymys ... mitä kutsutte "muuttujiksi", eivät ole funktioita tai menetelmiä?

    1.    David naranjo dijo

      Itse kyllä, ystäväni, kiitos korjauksesta.
      Kippis! 🙂

  2.   Pietari dijo

    Erinomainen, toivottavasti jatkat kaivamista.

  3.   manuaalinen alcocer dijo

    No, ei yksi asia eikä toinen, https://www.gnu.org/software/make/manual/make.htmlovat "kohteita"

  4.   manuaalinen alcocer dijo

    säännöt

  5.   Sebas dijo

    Toivottavasti he jatkavat tämänkaltaisten, kaikkialla läsnä olevien ja perusasioiden, selittämistä Linuxin päivittäisestä toiminnasta, jota kukaan ei koskaan selitä samalla intohimolla kuin miten näitä "etuja ja toimintaa" saarnataan.