মেকফাইল ভেরিয়েবল এবং আর্গুমেন্টস: একটি ব্যাপক গাইড

Mekapha Ila Bheriyebala Ebam Argumentasa Ekati Byapaka Ga Ida



সফ্টওয়্যার প্রকল্পগুলি তৈরি করার জন্য কমান্ডগুলি সংরক্ষণ করতে 'মেকফাইল' নামে একটি পাঠ্য ফাইল ব্যবহার করা হয়। এটি স্বয়ংক্রিয়ভাবে একটি টার্গেট ফাইল ব্যবহার করে প্রোজেক্টের আসল কোড লিঙ্ক, সেট আপ এবং কম্পাইল করে। একটি মেকফাইল একটি সোর্স কোড ফাইল থেকে একটি বস্তু এবং লক্ষ্য ফাইল তৈরি করতে নিযুক্ত করা হয়। একটি টার্গেট ফাইলের সঞ্চালনের পরে, সোর্স কোড ফাইলের মধ্যে কোডটি কার্যকর করা হবে, এবং আপনার প্রজেক্ট কিছুক্ষণের মধ্যেই চলবে। এই গাইডের মধ্যে, আমরা আপনাকে ভেরিয়েবল এবং আর্গুমেন্ট ব্যবহার করে কীভাবে একটি মেকফাইল তৈরি করতে হয় সে সম্পর্কে বিশদ বিবরণ দেব।

একটি মৌলিক মেকফাইল তিনটি অংশ নিয়ে গঠিত:







  • প্রকল্প-সম্পর্কিত ডেটা সঞ্চয় করার জন্য ভেরিয়েবলগুলিকে সত্তা লেবেল করা হয়।
  • মেকফাইলের নির্ভরতাগুলি ব্যবহার করে কীভাবে একটি উদ্দেশ্যযুক্ত ফাইল তৈরি করা যায় তা নিয়মগুলি নির্দিষ্ট করে।
  • মেকফাইলটি তৈরি করার জন্য ডিজাইন করা নথিগুলিকে লক্ষ্য হিসাবে উল্লেখ করা হয়।

মেকফাইল ভেরিয়েবল

যেমনটি আমরা ইতিমধ্যেই বর্ণনা করেছি, একটি লেবেলযুক্ত বস্তু যা ডেটা সঞ্চয় করার জন্য ব্যবহার করা যেতে পারে তাকে মেকফাইল ভেরিয়েবল হিসাবে উল্লেখ করা হয়। একটি ভেরিয়েবলের মান একটি একক অক্ষর, একটি সংখ্যাসূচক মান বা মানগুলির একটি সংগ্রহ হতে পারে। উৎস এবং লক্ষ্য নথির শিরোনাম, সেইসাথে লক্ষ্যগুলি তৈরি করার জন্য নিযুক্ত করা নির্দেশাবলী, ভেরিয়েবলে সংরক্ষিত বিল্ড পদ্ধতি সম্পর্কিত সমস্ত ডেটা।



মেকফাইল ভেরিয়েবল তৈরি করুন

মেকফাইলে একটি সাধারণ ভেরিয়েবলকে সংজ্ঞায়িত করার জন্য, আমাদের এটিকে একটি সাধারণ শিরোনাম দিয়ে শুরু করা উচিত যার পরে “=” চিহ্ন এবং এতে যে মান সংরক্ষণ করা হবে:



name_of_variable = value_of_variable





অন্যদিকে, একটি প্রকল্পের দ্রুত এবং সর্বোত্তম কার্য সম্পাদনের জন্য '=' এর পরিবর্তে ':=' ব্যবহার করার জন্য এটি পছন্দ এবং সুপারিশ করা হয়।

name_of_variable := value_of_variable



উদাহরণস্বরূপ, আমরা C প্রকল্পের জন্য একটি মেকফাইল তৈরি করি এবং একটি 'CC' ভেরিয়েবল ঘোষণা করি। এই ভেরিয়েবলটি কম্পাইলারকে সঞ্চয় করে যা C এর জন্য নির্বাহযোগ্য, যেমন 'gcc', একটি মান হিসাবে। চতুর্থ লাইনে, আমরা 'CFLAGS' ভেরিয়েবল তৈরি করি যা সংকলন প্রক্রিয়া চলাকালীন সতর্কতা দিতে ব্যবহৃত হয়। আপনি যে প্রকল্পটি চালাচ্ছেন তার অপ্টিমাইজেশন বাড়ানোর জন্য এবং কোনও সমস্যা এড়াতে এটি।

ঠিক তেমনই, এই কোড স্নিপেটে 'টার্গেট' ভেরিয়েবলটি একটি মেকফাইল কার্যকর করার পরে তৈরি করা নতুন টার্গেট ফাইল সেট করার জন্য নিযুক্ত করা হয়। একটি মেক ফাইল তৈরি করার সময়, একটি টার্গেট ফাইল সেট করার পরে সোর্স এবং অবজেক্ট ফাইলগুলি সেট করা প্রয়োজন। সোর্স এবং অবজেক্ট ফাইলগুলিও ভেরিয়েবল ব্যবহার করে সংজ্ঞায়িত করা যেতে পারে। আপনি আপনার পছন্দ অনুযায়ী এই ভেরিয়েবলের নাম দিতে পারেন।

উদাহরণস্বরূপ, SRCS ভেরিয়েবল একটি সোর্স ফাইল সেট করে যখন OBJS ভেরিয়েবল SRCS ভেরিয়েবল ব্যবহার করে একটি নতুন অবজেক্ট ফাইল সেট করে।

CC = জিসিসি
CFLAGS = -ওয়াল
টার্গেট = নতুন
SRCS = main.c
OBJS = $ ( SRCS:.c=.o )

Makefile ভেরিয়েবল ব্যবহার করুন

মেকফাইল ভেরিয়েবলগুলি ঘোষণা বা সংজ্ঞায়িত করার পরে, সেগুলিকে মেকফাইলে ব্যবহারযোগ্য করে তোলা অত্যন্ত প্রয়োজনীয়। একটি মেকফাইল ভেরিয়েবল ব্যবহার করার জন্য, আপনাকে '$' চিহ্নটি ব্যবহার করতে হবে এবং তারপরে '()' বা '{}' বন্ধনী ব্যবহার করতে হবে। উদাহরণস্বরূপ, আমরা টার্গেট এক্সিকিউটেবল ফাইল তৈরি করতে '$()' ব্যবহার করি। এই পদক্ষেপটি করার পরে, লক্ষ্য ফাইলটি প্রতিক্রিয়া জানাতে সক্ষম হবে।

সব: $ ( টার্গেট )

মেকফাইল আর্গুমেন্ট

যখনই মেকফাইল কল করা হয়, একটি মান এটিকে একটি প্যারামিটার হিসাবে সরবরাহ করা হয় যা একটি 'আর্গুমেন্ট' হিসাবে পরিচিত। আর্গুমেন্টগুলি একটি মিউটেবলের আসল মানকে ওভাররাইড করতে বা রানটাইমে মেকফাইলে আরও বিশদ যোগ করার জন্য নিযুক্ত করা হয়। একটি মেকফাইলে একটি ভেরিয়েবলে কমান্ড-লাইন আর্গুমেন্টগুলি পাস করার জন্য, আপনার 'মেক' কীওয়ার্ডটি ব্যবহার করা উচিত এবং একটি পরিবর্তনশীল নাম এবং একটি আর্গুমেন্ট মান যা এটিতে পাস করা হয়েছে:

করা name_of_variable = value_of_variable

এই প্যারামিটারগুলি মেকফাইলে সাধারণ ভেরিয়েবল হিসাবে অ্যাক্সেস করা যেতে পারে, যেমন 'নতুন' হল 'টার্গেট' ভেরিয়েবলের আর্গুমেন্ট মান।

টার্গেট = নতুন

উদাহরণ: ভেরিয়েবল এবং আর্গুমেন্ট তৈরি করুন

মেকফাইলে ভেরিয়েবল এবং আর্গুমেন্টের ব্যবহার প্রদর্শন করতে, আমরা C++ এ একটি সাধারণ উদাহরণ ব্যবহার করি। আমরা Notepad++ এ একটি নতুন C++ ফাইল তৈরি করি এবং একটি নমুনা প্রোগ্রামে ইনপুট এবং আউটপুট ব্যবহার করার জন্য একটি 'iostream' হেডার যোগ করি।

main() ফাংশন একটি অক্ষর টাইপ ভেরিয়েবল “v” এর ঘোষণা দিয়ে শুরু হয়। স্ট্যান্ডার্ড আউটপুট স্ট্রীম যা 'cout' ব্যবহার করা হয় প্রদর্শন করতে এবং ব্যবহারকারীকে ইনপুট চাওয়ার জন্য। বিপরীতে, 'cin' স্ট্যান্ডার্ড ইনপুট স্ট্রীম রানটাইমে একজন ব্যবহারকারীর কাছ থেকে একটি ইনপুট মান পায় এবং এটিকে 'v' ভেরিয়েবলে সংরক্ষণ করে। স্ট্যান্ডার্ড 'cout' আবার ব্যবহার করা হয় রান-টাইমে ব্যবহারকারী দ্বারা যোগ করা মান প্রদর্শন করতে। 'রিটার্ন 0' বিবৃতিটি সফলভাবে প্রোগ্রাম এক্সিকিউশন শেষ করে।

# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
char v;
std::cout << 'একটি মান লিখুন:' ;
std::cin >> ভিতরে;
std::cout << ভিতরে << std::endl;
প্রত্যাবর্তন 0 ;
}

একটি মেকফাইল একটি আদর্শ উপায় ব্যবহার করে তৈরি করা হয়। প্রথম ভেরিয়েবল, “CXX”, কম্পাইলারকে C++ ফাইল চালানোর জন্য ব্যবহার করা হবে বলে ঘোষণা করে, যেমন “g++”। খুব পরবর্তী ভেরিয়েবলটি কোনো সমস্যা এড়াতে একটি কম্পাইলারের জন্য পতাকা সেট করতে ব্যবহৃত হয়।

এখন, টার্গেট ফাইলটি 'টার্গেট' ভেরিয়েবল ব্যবহার করে 'নতুন' এ সেট করা হয়েছে। এটি একটি এক্সিকিউটেবল ফাইল। এর পরে, মেকফাইল SRCS এবং OBJS ভেরিয়েবলের মাধ্যমে তার উৎস এবং অবজেক্ট ফাইলকে সংজ্ঞায়িত করে। ঘোষিত ভেরিয়েবল ব্যবহার করার জন্য, আমরা টার্গেট এক্সিকিউটেবল, অবজেক্ট ফাইল তৈরি করতে এবং অবজেক্ট ও টার্গেট ফাইল পরিষ্কার করতে '$' চিহ্নের পরে '()' ব্র্যাকার ব্যবহার করি।

CXX = g++
CXXFLAGS = -std =c++ এগারো -ওয়াল
টার্গেট = নতুন
SRCS = main.cpp
OBJS = $ ( SRCS:.cpp=.o )
সব: $ ( টার্গেট )
$ ( টার্গেট ) : $ ( ওবিজেএস )
$ ( সিএক্সএক্স ) $ ( সিএক্সএক্সফ্ল্যাগস ) -ও $ ( টার্গেট ) $ ( ওবিজেএস )
% .ও: % .cpp
$ ( সিএক্সএক্স ) $ ( সিএক্সএক্সফ্ল্যাগস ) -গ $ < -ও $ @
পরিষ্কার:
rm -চ $ ( টার্গেট ) $ ( ওবিজেএস )

C++ এবং এর মেকফাইল সেভ করার পর, আপনার সিস্টেমের CMD চালু করুন, ওয়ার্কিং ডাইরেক্টরিতে নেভিগেট করুন এবং মেক ইনস্ট্রাকশনটি নিম্নরূপ চালান। এটি সোর্স কোড ফাইলের জন্য 'main.o' অবজেক্ট ফাইল এবং 'New.exe' টার্গেট ফাইল তৈরি করে। আমরা এখনকার জন্য নির্দেশাবলী তৈরি করার জন্য কোন যুক্তি পাস করিনি।

করা

টার্গেট ফাইল চালালে ব্যবহারকারীকে ইনপুট জিজ্ঞাসা করা হবে। আমরা প্রথম সম্পাদনে 'h' অক্ষর এবং দ্বিতীয় সম্পাদনে 'haha' যোগ করি। যদিও 'v' ভেরিয়েবল শুধুমাত্র 'অক্ষর' মান গ্রহণ করে, 'haha' স্ট্রিং থেকে 'h' অক্ষর সংরক্ষণ এবং প্রদর্শিত হয়।

New.exe

আসুন মেকফাইল ভেরিয়েবলে পাস করা কমান্ড-লাইন আর্গুমেন্ট ব্যবহার করে মেক নির্দেশনাটি চালাই। সুতরাং, আমরা 'টার্গেট' ভেরিয়েবলের মান পরিবর্তন করি এবং এটিতে 'পরীক্ষা' পাস করি। এর পরে, 'Test.exe' ফাইলটি তৈরি হয় এবং ঠিক 'New.exe' ফাইলের মতো কাজ করে।

করা টার্গেট =পরীক্ষা
Test.exe

উপসংহার

এই ব্যাপক গাইডের মধ্যে, আমরা একে একে মেকফাইলের বিষয়বস্তু দেখেছি। আমরা কীভাবে একটি মেকফাইলে ভেরিয়েবলগুলি ঘোষণা করতে হয়, কীভাবে সেগুলিকে ব্যবহারযোগ্য করে তুলতে হয় এবং আর্গুমেন্টের সাহায্যে রানটাইমে কীভাবে তাদের মান পরিবর্তন করতে হয় সে সম্পর্কে বিস্তারিত বর্ণনা করেছি। আমাদের ব্যাখ্যাকে সমর্থন করে, আমরা C++ এ একটি সাধারণ উদাহরণ নিয়ে আলোচনা করেছি।