Makefile چیست و چگونه در Linux کار می کند؟

Makefile چیست و چگونه در Linux کار می کند

Si هنگام به روزرسانی فایلهای خاص می خواهید کاری را اجرا یا به روز کنید، ابزار ساخت مفید خواهد بود. ابزار make به یک فایل makefile نیاز دارد که مجموعه ای از وظایف را برای اجرا مشخص می کند.

این نام برای بسیاری از شما آشنا به نظر می رسد زیرا ممکن است شما برای ساخت برنامه از کد منبع از make استفاده کرده باشید. اکثر پروژه های منبع باز از make برای کامپایل باینری اجرایی نهایی استفاده می کنند که می تواند با استفاده از make install نصب شود.

در این مورد بیایید درک کنیم که چگونه این نوع پرونده ها در لینوکس کار می کنند.

یک فایل makefile اصولاً به چهار نوع اصطلاح اصلی تقسیم می شود:

  • نظرات
  • متغیرها
  • قوانین صریح
  • قوانین ضمنی

قوانین صریح می گوید که چه پرونده هایی به پرونده های دیگر و همچنین دستورات لازم برای کامپایل یک پرونده خاص بستگی دارد.

در حالی که ضمنی ها شبیه صریح هستند ، اما با این تفاوت که آنها دستورات اجرا را نشان می دهند ، اما استفاده می کند از پسوندهای پرونده برای تعیین اینکه کدام دستورات را اجرا کند.

در این مثال ما نمی خواهیم از این دو مورد گذشته استفاده کنیم ، ما فقط با چاپ نسخه کلاسیک "Hello World" در ترمینال شروع می کنیم.

برای این کار ما می خواهیم یک فهرست خالی با نام مورد نظر خود ایجاد کنیم.

در این مورد بگذارید آن را "ساخت نمونه" بنامیم و در این ما می خواهیم یک پرونده با محتوای زیر ایجاد کنیم:

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

اکنون پرونده را با تایپ کردن make در داخل پوشه اجرا کنید ، خروجی خواهد بود:

make
echo "Hola Mundo"
Hola Mundo

همانطور که می بینید هنگام ساخت makefile ، دستور echo "Hello World" نمایش داده می شود و به دنبال آن خروجی دستور واقعی ارائه می شود. ما اغلب چنین چیزی را نمی خواهیم. برای سرکوب این خروجی هنگام اجرای make ، کافیست "@" را قبل از echo اضافه کنید:

مثال عملی این است:

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

اکنون می توانیم مجدداً پرونده را اجرا کنیم. خروجی فقط این باید نشان دهد:

make
Hola Mundo

این کاملا اساسی است. اما همانطور که می دانید ، makefile ها حاوی چیزهای زیادی هستند که از آنها نشانگر دنباله هایی است که باید دنبال کنید.

می توان چند توالی ساده به این پرونده اضافه کرد.

چی ما می خواهیم فایل را به صورت زیر ویرایش کنیم:

#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

هنگام استفاده مجدد از فایل ، این فقط هدف اول را اجرا می کند. این بدان دلیل است که فقط اولین هدف در پرونده ساخت ، هدف پیش فرض است.

برای اجرای متوالی لازم است که آن را در پرونده با "همه" نشان دهید. مسئولیت "آنجا" است که اهداف دیگر را فراخوانی کند.

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

می توانید مجدداً اقدام به ساخت make کنید و می بینید که درون پوشه فایلی به نام "File.txt".

به همان شیوه امکان اجرای یک هدف در داخل فایل makefile وجود دارد، این به طور کلی مورد استفاده قرار می گیرد.

ما می خواهیم پرونده خود را اصلاح کنیم و در پایان موارد زیر را اضافه خواهیم کرد:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

می توانید دوباره make را اجرا کنید و فایل txt را دوباره ایجاد می کند. همانطور که خواهید دید ، همان کار قبلی را انجام خواهد داد. اما اکنون قصد داریم هدفی را که در داخل فایل makefile است ، اجرا کنیم.

ما این کار را با موارد زیر انجام می دهیم:

make clean

با این کار می توانیم چیزهای کاملاً اساسی در مورد ساختن پرونده ها و اینکه اگر بخواهیم بعضی موارد را خودکار کنیم ، می توانند کاملاً مفید باشند ، یاد بگیریم.

بدیهی است که شما می توانید یک پرونده بزرگتر و پیچیده تر بسازید ، اما این یک نمونه صرفاً برای تازه واردان است (من خودم را نیز شامل می شوم) که با نحوه کار این کار آشنا می شوند.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

6 نظر ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد.

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   arg0s dijo

    مقاله بسیار جالبی یک سوال ... آنچه شما "متغیرها" می نامید توابع یا روش ها نخواهد بود؟

    1.    دیوید نارنجو dijo

      در واقع ، بله دوست من ، ممنون از تصحیح.
      به سلامتی! 🙂

  2.   پدرو dijo

    عالی ، امیدوارم به حفاری ادامه دهید.

  3.   ManuelALcocer dijo

    خوب ، نه یک چیز و نه چیز دیگر ، https://www.gnu.org/software/make/manual/make.html، "اهداف" هستند

  4.   ManuelALcocer dijo

    قوانین

  5.   سبا dijo

    امیدوارم که آنها به توضیح مواردی از این قبیل ، "همه جا و ابتدایی" ، در مورد راه اندازی روزانه لینوکس ادامه دهند ، که هیچ کس هرگز با همان شور و شوق نحوه تبلیغ این "مزایا و عملکرد" ​​توضیح نمی دهد.

bool (درست)