میک فائل متغیرات اور دلائل: ایک جامع رہنما

Myk Fayl Mtghyrat Awr Dlayl Ayk Jam R Nma



ایک ٹیکسٹ فائل جسے 'makefile' کہا جاتا ہے اسے سافٹ ویئر پروجیکٹس بنانے کے لیے کمانڈز کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔ یہ ٹارگٹ فائل کا استعمال کرتے ہوئے پروجیکٹ کے اصل کوڈ کو خود بخود لنک کرتا ہے، سیٹ کرتا ہے اور مرتب کرتا ہے۔ ایک ماخذ کوڈ فائل سے ایک آبجیکٹ اور ٹارگٹ فائلوں کو بنانے کے لئے ایک میک فائل کا استعمال کیا جاتا ہے۔ ٹارگٹ فائل کی تکمیل پر، سورس کوڈ فائل کے اندر موجود کوڈ پر عمل درآمد ہو جائے گا، اور آپ کا پراجیکٹ کچھ ہی دیر میں چلے گا۔ اس گائیڈ کے اندر، ہم آپ کو اس بارے میں جامع تفصیلات دیں گے کہ متغیرات اور دلائل کا استعمال کرتے ہوئے میک فائل کیسے بنایا جائے۔

ایک بنیادی میک فائل تین حصوں پر مشتمل ہے:







  • متغیرات کو پراجیکٹ سے متعلقہ ڈیٹا کو ذخیرہ کرنے کے لیے اداروں کا لیبل لگایا گیا ہے۔
  • قواعد واضح کرتے ہیں کہ میک فائل میں انحصار کا استعمال کرتے ہوئے مطلوبہ فائل کیسے بنائی جائے۔
  • وہ دستاویزات جنہیں میک فائل بنانے کے لیے ڈیزائن کیا گیا ہے انہیں اہداف کہا جاتا ہے۔

میک فائل متغیرات

جیسا کہ ہم پہلے ہی بیان کر چکے ہیں، ایک لیبل لگا ہوا آبجیکٹ جو ڈیٹا کو ذخیرہ کرنے کے لیے استعمال کیا جا سکتا ہے اسے میک فائل متغیر کہا جاتا ہے۔ ایک متغیر کی قدر ایک حرف، عددی قدر، یا اقدار کا مجموعہ ہو سکتی ہے۔ ماخذ اور ٹارگٹ دستاویزات کے عنوانات، نیز اہداف بنانے کے لیے استعمال کی جانے والی ہدایات، تعمیر کے طریقہ کار سے متعلق تمام ڈیٹا ہیں جو متغیرات میں محفوظ ہیں۔



میک فائل متغیرات بنائیں

میک فائل میں ایک سادہ متغیر کی وضاحت کرنے کے لیے، ہمیں اسے ایک سادہ عنوان سے شروع کرنا چاہیے جس کے بعد '=' نشان اور اس میں ذخیرہ ہونے والی قدر کے ساتھ شروع کریں:



name_of_variable = قدر_کی_متغیر





دوسری طرف، کسی پروجیکٹ کی تیز اور بہترین کارکردگی کے لیے '=' کے بجائے ':=' کو آزمانے کو ترجیح دی جاتی ہے۔

name_of_variable := قدر_کی_متغیر



مثال کے طور پر، ہم C پروجیکٹ کے لیے ایک میک فائل بناتے ہیں اور 'CC' متغیر کا اعلان کرتے ہیں۔ یہ متغیر کمپائلر کو ذخیرہ کرتا ہے جو C کے لیے قابل عمل ہے، یعنی 'gcc'، بطور قدر۔ چوتھی سطر پر، ہم 'CFLAGS' متغیر بناتے ہیں جو تالیف کے عمل کے دوران وارننگ دینے کے لیے استعمال ہوتا ہے۔ یہ ایک ایسے پروجیکٹ کی اصلاح کو بڑھانا ہے جسے آپ چلا رہے ہیں اور کسی بھی مسائل سے بچنا ہے۔

بالکل اسی طرح، اس کوڈ کے ٹکڑوں میں 'TARGET' متغیر کو نئی ٹارگٹ فائل سیٹ کرنے کے لیے استعمال کیا جاتا ہے جو میک فائل کے عمل کے بعد تیار ہوتی ہے۔ میک فائل بناتے وقت ٹارگٹ فائل سیٹ کرنے کے بعد سورس اور آبجیکٹ فائلز کو سیٹ کرنا ضروری ہوتا ہے۔ ماخذ اور آبجیکٹ فائلوں کو متغیرات کا استعمال کرتے ہوئے بھی بیان کیا جاسکتا ہے۔ آپ ان متغیرات کو اپنی پسند کے مطابق نام دے سکتے ہیں۔

مثال کے طور پر، SRCS متغیر ایک سورس فائل سیٹ کرتا ہے جبکہ OBJS متغیر SRCS متغیر کا استعمال کرتے ہوئے ایک نئی آبجیکٹ فائل سیٹ کرتا ہے۔

CC = جی سی سی
CFLAGS = -دیوار
ٹارگٹ = نیا
SRCS = main.c
OBJS = $ ( SRCS:.c=.o )

Makefile متغیرات کا استعمال کریں۔

میک فائل متغیرات کا اعلان یا وضاحت کرنے کے بعد، انہیں میک فائل میں قابل استعمال بنانا بہت ضروری ہے۔ میک فائل متغیر کو استعمال کرنے کے لیے، آپ کو '$' کے نشان کے بعد '()' یا '{}' بریکٹ استعمال کرنا ہوں گے۔ مثال کے طور پر، ہم ٹارگٹ ایگزیکیوٹیبل فائل بنانے کے لیے '$()' استعمال کرتے ہیں۔ یہ قدم کرنے کے بعد، ہدف فائل جواب دینے کے قابل ہو جائے گا.

تمام: $ ( ہدف )

میک فائل دلائل

جب بھی میک فائل کو بلایا جاتا ہے، اس کو ایک پیرامیٹر کے طور پر ایک قدر فراہم کی جاتی ہے جسے 'دلیل' کہا جاتا ہے۔ آرگیومینٹس کو بدلنے والے کی اصل قدر کو اوور رائیڈ کرنے یا رن ٹائم پر میک فائل میں مزید تفصیلات شامل کرنے کے لیے استعمال کیا جاتا ہے۔ کمانڈ لائن آرگیومینٹس کو میک فائل میں متغیر کو منتقل کرنے کے لیے، آپ کو 'make' کلیدی لفظ استعمال کرنا چاہیے جس کے بعد متغیر کا نام اور ایک آرگیومینٹ ویلیو اس کو بھیجی جائے:

بنانا name_of_variable = قدر_کی_متغیر

ان پیرامیٹرز کو میک فائل میں عام متغیر کے طور پر حاصل کیا جا سکتا ہے، یعنی 'نیا' 'TARGET' متغیر کی دلیل کی قدر ہے۔

ٹارگٹ = نیا

مثال: متغیرات اور دلائل بنائیں

میک فائل میں متغیرات اور دلائل کے استعمال کو ظاہر کرنے کے لیے، ہم C++ میں ایک سادہ سی مثال استعمال کرتے ہیں۔ ہم Notepad++ میں ایک نئی C++ فائل بناتے ہیں اور نمونہ پروگرام میں ان پٹ اور آؤٹ پٹ کو استعمال کرنے کے لیے ایک 'iostream' ہیڈر شامل کرتے ہیں۔

مین () فنکشن ایک کریکٹر ٹائپ ویری ایبل 'v' کے اعلان کے ساتھ شروع ہوتا ہے۔ معیاری آؤٹ پٹ سٹریم جو کہ 'cout' ہے اسے ڈسپلے کرنے اور صارف سے ان پٹ مانگنے کے لیے استعمال کیا جاتا ہے۔ اس کے برعکس، 'cin' معیاری ان پٹ سٹریم رن ٹائم پر صارف سے ان پٹ ویلیو حاصل کرتا ہے اور اسے 'v' متغیر میں محفوظ کرتا ہے۔ معیاری 'cout' دوبارہ اس قدر کو ظاہر کرنے کے لیے استعمال کیا جاتا ہے جو رن ٹائم پر صارف کے ذریعے شامل کی جاتی ہے۔ 'واپسی 0' بیان پروگرام کی تکمیل کو کامیابی سے ختم کرتا ہے۔

# شامل کریں
اہم int ( ) {
char v;
std::cout << 'ایک قدر درج کریں:' ;
std::cin >> میں
std::cout << میں << std::endl;
واپسی 0 ;
}

ایک میک فائل معیاری طریقے سے تیار کی جاتی ہے۔ پہلا متغیر، 'CXX'، کمپائلر کو C++ فائل چلانے کے لیے استعمال کرنے کا اعلان کرتا ہے، یعنی 'g++'۔ اگلے ہی متغیر کا استعمال کسی بھی مسئلے سے بچنے کے لیے کمپائلر کے لیے جھنڈے لگانے کے لیے کیا جاتا ہے۔

اب، ہدف فائل کو 'TARGET' متغیر کا استعمال کرتے ہوئے 'نیا' پر سیٹ کیا گیا ہے۔ یہ ایک قابل عمل فائل ہے۔ اس کے بعد، میک فائل SRCS اور OBJS متغیرات کے ذریعے اپنے ماخذ اور آبجیکٹ فائل کی وضاحت کرتی ہے۔ اعلان کردہ متغیرات کو استعمال کرنے کے لیے، ہم '$' نشان کا استعمال کرتے ہیں جس کے بعد '()' بریکرز ٹارگٹ ایگزیکیوٹیبل، آبجیکٹ فائل بنانے اور آبجیکٹ اور ٹارگٹ فائل کو صاف کرنے کے لیے استعمال کرتے ہیں۔

CXX = g++
CXXFLAGS = -std =c++ گیارہ -دیوار
ٹارگٹ = نیا
SRCS = main.cpp
OBJS = $ ( SRCS:.cpp=.o )
تمام: $ ( ہدف )
$ ( ہدف ) :$ ( OBJS )
$ ( CXX ) $ ( CXXFLAGS ) -او $ ( ہدف ) $ ( OBJS )
% .O: % .cpp
$ ( CXX ) $ ( CXXFLAGS ) -c $ < -او $ @
صاف:
rm -f $ ( ہدف ) $ ( OBJS )

C++ اور اس کی میک فائل کو محفوظ کرنے کے بعد، اپنے سسٹم کا CMD لانچ کریں، ورکنگ ڈائرکٹری میں جائیں، اور میک انسٹرکشن کو اس طرح چلائیں۔ یہ سورس کوڈ فائل کے لیے 'main.o' آبجیکٹ فائل اور 'New.exe' ٹارگٹ فائل تیار کرتا ہے۔ ہم نے ابھی کے لیے ہدایات بنانے کے لیے کوئی دلیل نہیں دی ہے۔

بنانا

ٹارگٹ فائل کو چلانے سے صارف ان پٹ کے لیے پوچھے گا۔ ہم پہلی پھانسی پر 'h' حرف اور دوسرے عمل میں 'haha' شامل کرتے ہیں۔ جبکہ 'v' متغیر صرف 'کریکٹر' کی قدروں کو قبول کرتا ہے، 'haha' سٹرنگ سے 'h' کیریکٹر کو اسٹور اور ڈسپلے کیا جاتا ہے۔

New.exe

آئیے کمانڈ لائن آرگیومینٹس کا استعمال کرتے ہوئے میک انسٹرکشن چلاتے ہیں جو میک فائل ویری ایبلز کو بھیجے جاتے ہیں۔ لہذا، ہم 'TARGET' متغیر کی قدر کو تبدیل کرتے ہیں اور اس میں 'ٹیسٹ' پاس کرتے ہیں۔ اس کے بعد، 'Test.exe' فائل تیار ہوتی ہے اور بالکل 'New.exe' فائل کی طرح کام کرتی ہے۔

بنانا ہدف =ٹیسٹ
Test.exe

نتیجہ

اس جامع گائیڈ کے اندر، ہم نے ایک ایک کرکے میک فائل کے مواد کو دیکھا ہے۔ ہم نے وضاحت کی کہ میک فائل میں متغیرات کا اعلان کیسے کیا جائے، انہیں قابل استعمال کیسے بنایا جائے، اور رن ٹائم کے وقت دلائل کی مدد سے ان کی قدر کو کیسے تبدیل کیا جائے۔ ہماری وضاحت کی حمایت کرتے ہوئے، ہم نے C++ میں ایک سادہ مثال پر تبادلہ خیال کیا۔