با سلام و خسته نباشید، در این مطلب میخواهم ساخت یک makefile را آموزش بدم

توجه کنید که خودم هم در این زمینه حرفه ای نیستم!

صفر: با این آموزش فقط می توانید makefileی بسازید که دستوراتی که قبلا در ترمینال ذخیره میکردید را به صورت make run خلاصه کند

اول: makefile یک فایل متنی است (بدون فرمت و فقط با همین نام) که کنار فایل های برنامه ذخیره می شود

دوم: برای استفاده باید build-essentials  رو نصب کنید (در گنو/لینوکس:)


خب شروع آموزش: فرض کنید فایل برنامه شما main.cpp است و میخواهید با نام main.exe آن را کامپایل کنید و در انتها آن را اجرا کنید

خب  به طور عادی دستورات زیر را هر بار اجرا می کنید :

g++ main.cpp -o main.exe (-o2   -std=c++17 -g )

./main.exe

و اگر مثل من وسواس داشته باشید احتمالا reset یا clear هم اجرا می کنید

حال اگر این دستورات را در یک makefile کپی و پیست کنیم با نوشتن دستور make run همین کار را برای ما انجام می دهد :


run: compile
    @reset   
    @./main.exe
compile:
    @g++ main.cpp -o main.exe -std=c++17 -g


خب می رسیم به شرح دستورات: قسمت اول run است که برنامه ر اجرا می کنم و بعد از ۲نقطه در سطر اول پیش نیاز های آن را می نویسیم برای مثال برای اجرای run ابتدا نیاز است که compile اجرا شود
بعد از اینکه compile اجرا شد، اکنون run اجرا می شود و صفحه تمیز می شود و main.exe  اجرا می شود

می توانید قسمت clean هم تعریف کنید (که توصیه می شود) که فایل هایی که در  حبن کامپایل ساخته شده(مثلا در اینحا main.exe را پاک کند)
توحه : اگر بعد از make هیچ دستوری ننویسید اولین زیربرنامه (مثلا اینجا run ) اجرا می شود