Mi az a Makefile és hogyan működik a Linuxon belül?

Mi az a Makefile és hogyan működik a Linuxon belül

Si bizonyos fájlok frissítésekor futtatni vagy frissíteni szeretne egy feladatot, a make segédprogram jól jöhet. A make segédprogramhoz szükséges egy fájl, a makefile, amely meghatározza a végrehajtandó feladatok halmazát.

Ez a név sokak számára ismerősen fog hangzani, mivel a forráskódból program összeállításához használhatta a make-et. A legtöbb nyílt forráskódú projekt a make használatával állítja össze a végleges futtatható bináris fájlt, amelyet a make install használatával lehet telepíteni.

Ebben az esetben értsük meg, hogyan működnek az ilyen típusú fájlok a Linuxon belül.

Makefile fájl Alapvetően négyféle állításra oszlik:

  • Comments
  • Változók
  • Kifejezett szabályok.
  • Implicit szabályok.

Az explicit szabályok megadják, hogy mely fájlok függnek más fájloktól, valamint az adott fájl fordításához szükséges parancsoktól.

Míg az implicitek hasonlítanak az explicitekhez, de különbséggel jelzik a végrehajtandó parancsokat, ehelyett azonban a fájlkiterjesztésekkel határozzák meg, hogy mely parancsokat hajtsák végre.

Ebben a példában nem ezt az utóbbi kettőt fogjuk használni, Csak azzal kezdjük, hogy kinyomtatjuk a klasszikus "Hello World" -t a terminálba.

Ehhez létrehozunk egy üres könyvtárat a kívánt névvel.

Ebben az esetben nevezzük "példa-készítésnek" és ezen belül Készíteni fogunk egy makefile-t a következő tartalommal:

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

Most futtassa a fájlt a make beírásával a könyvtárba, a kimenet a következő lesz:

make
echo "Hola Mundo"
Hola Mundo

Amint láthatja a makefile futtatásakor, megjelenik a "Hello World" visszhang és a tényleges parancs kimenete. Gyakran nem ezt akarjuk. A kimenet elnyomásához a make futtatásakor egyszerűen adjon hozzá egy "@" szót visszhang előtt:

Ennek gyakorlati példája:

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

Most újra folytathatjuk a makefile futtatását. Csak ennek a kimenetnek kell megmutatnia:

make
Hola Mundo

Ez elég alap. De mint tudják, a makefájlok sok mindent tartalmaznak, amelyek jelzik a követendő szekvenciákat.

Hozzáadhatunk néhány egyszerű szekvenciát ehhez a fájlhoz.

bármi a következõ módon fogjuk szerkeszteni a fájlt:

#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

A makefile újraindításakor ez csak az első célt fogja megvalósítani. Ez azért van, mert a makefájlban csak az első cél az alapértelmezett cél.

A végrehajtás sorrendben történő elvégzéséhez szükséges feltüntetni a fájlban "all" -al. Az "ott" feladata más célpontok felhívása.

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

Folytathatja a make újbóli végrehajtását, és látni fogja, hogy a könyvtárban található egy fájl "File.txt".

Ugyanígy lehetséges egy célpont végrehajtása a makefile fájlban, ezt általában széles körben használják.

Módosítani fogjuk a fájlunkat, és a következőket fogjuk hozzáadni a végén:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Futtathatja újra a make-et, és ez létrehozza a txt fájlt. Mint látni fogja, ugyanazt fogja tenni, mint az előző alkalommal. De most a makefile fájlban lévő célt fogjuk végrehajtani.

Tesszük ezt:

make clean

Ezzel megtudhatunk valami egészen alapvető dolgot a fájlok készítéséről és arról, hogy ezek hogyan lehetnek hasznosak, ha automatizálni akarunk néhány dolgot.

Nyilván lehet nagyobb és összetettebb fájlt készíteni, de ez csupán példa azoknak a kezdőknek (ide tartozom), akik megismerik ennek működését.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   arg0s dijo

    Nagyon érdekes cikk. Egy kérdés ... amit Ön "változóknak" nevez, nem függvények vagy módszerek lennének?

    1.    David naranjo dijo

      Sőt, igen, barátom, köszönöm a javítást.
      Egészségére! 🙂

  2.   Peter dijo

    Kiváló, remélem, folyton ássz.

  3.   manuelalcocer dijo

    Nos, sem az egyik, sem a másik, https://www.gnu.org/software/make/manual/make.html, "célpontok"

  4.   manuelalcocer dijo

    szabályok

  5.   Sebas dijo

    Remélhetőleg folytatják a Linux mindennapi futtatásának ilyen, "mindenütt jelen lévő és alapvető" dolgok magyarázatát, amelyeket soha senki nem magyaráz meg ugyanolyan szenvedéllyel, mint hogy miként hirdetik ezeket az "előnyöket és működést".