আমি মেকফিলস সম্পর্কিত কিছু টিউটোরিয়াল পড়েছি তবে লক্ষ্য "সমস্ত" কী দাঁড়ায় এবং এটি কী করে তা এখনও আমার পক্ষে পরিষ্কার নয়।
কোন ধারনা?
আমি মেকফিলস সম্পর্কিত কিছু টিউটোরিয়াল পড়েছি তবে লক্ষ্য "সমস্ত" কী দাঁড়ায় এবং এটি কী করে তা এখনও আমার পক্ষে পরিষ্কার নয়।
কোন ধারনা?
উত্তর:
একটি বিল্ড, যেমন মেকফিল এটি বোঝে, প্রচুর লক্ষ্যবস্তু নিয়ে গঠিত। উদাহরণস্বরূপ, একটি প্রকল্প তৈরি করতে আপনার প্রয়োজন হতে পারে
আপনি যদি এই ওয়ার্কফ্লোটি মেকফিল দিয়ে প্রয়োগ করেন তবে আপনি লক্ষ্যবস্তুগুলির পৃথক পৃথকভাবে করতে পারেন। উদাহরণস্বরূপ, আপনি যদি লিখেন
make file1.o
এটি কেবল যদি প্রয়োজন হয় তবে এই ফাইলটি তৈরি করবে।
নাম all
নির্দিষ্ট করা হয় না। এটি কেবল একটি প্রচলিত নাম; all
লক্ষ্য দ্বারা বোঝানো হয় যে আপনি এটা ডাকা, করতে গড়ে তুলবে সব কি একটি সম্পূর্ণ বিল্ড করতে দরকার । এটি সাধারণত একটি ডামি লক্ষ্য, যা কোনও ফাইল তৈরি করে না, তবে কেবলমাত্র অন্যান্য ফাইলের উপর নির্ভর করে। উপরের উদাহরণের জন্য, সমস্ত প্রয়োজনীয় বিল্ডিং এক্সিকিউটেবলগুলি বিল্ড করা, অন্যান্য ফাইলগুলি নির্ভরতা হিসাবে টানা হয়। সুতরাং মেকফিলটিতে এটি দেখতে এমন দেখাচ্ছে:
all: executable1 executable2
all
লক্ষ্যটি মেকফিলের মধ্যে সাধারণত প্রথম হয়, যেহেতু আপনি যদি make
লক্ষ্যটি নির্দিষ্ট না করে কেবল কমান্ড লাইনে লিখে থাকেন তবে এটি প্রথম লক্ষ্যটি তৈরি করবে। এবং আপনি এটি হতে আশা all
।
all
সাধারণত একটি .PHONY
লক্ষ্য। এখানে আরও জানুন ।
জিএনইউ মেকের জন্য ম্যানুয়ালটি all
তার মানক লক্ষ্যগুলির তালিকার জন্য একটি পরিষ্কার সংজ্ঞা দেয় ।
যদি মেকফিলের লেখক সেই সম্মেলনটি অনুসরণ করে তবে লক্ষ্যটি all
হওয়া উচিত:
make
একই কাজ করা উচিত make all
।1 অর্জনের all
জন্য সাধারণত একটি .PHONY
লক্ষ্য হিসাবে সংজ্ঞায়িত করা হয় যা সম্পূর্ণ প্রোগ্রামটি নির্বাহী (গুলি) এর উপর নির্ভর করে:
.PHONY : all
all : executable
2 অর্জনের জন্য all
হয় মেক ফাইলে সংজ্ঞায়িত প্রথম লক্ষ্য হওয়া উচিত বা ডিফল্ট লক্ষ্য হিসাবে নির্ধারিত হওয়া উচিত:
.DEFAULT_GOAL := all
নিশ্চিত না যে এটি বিশেষ কোনও কিছুর জন্য দাঁড়িয়েছে। এটি কেবল একটি কনভেনশন যা আপনি একটি 'সমস্ত' নিয়ম সরবরাহ করেন এবং সাধারণত এটি পুরো প্রকল্পটি তৈরি করতে প্রয়োজনীয় সমস্ত উপ-লক্ষ্যগুলি তালিকাভুক্ত করার জন্য ব্যবহৃত হয়, সুতরাং নামটি 'সমস্ত'। কেবল এটির জন্য বিশেষ বিষয়টি হ'ল প্রায়শই লোকেরা এটিকে মেকফিলের প্রথম টার্গেট হিসাবে রাখে, যার অর্থ শুধুমাত্র 'মেক' টাইপ করা 'মেক অল' এর মতো কাজ করবে।
লক্ষ্য "সমস্ত" একটি ডামি টার্গেটের উদাহরণ - ডিস্কে "অল" নামে কিছুই নেই। এর অর্থ হ'ল আপনি যখন "সমস্ত তৈরি করুন" করেন, সর্বদা মনে করুন যে এটি তৈরি করা দরকার এবং তাই সেই লক্ষ্যের জন্য সমস্ত কমান্ড কার্যকর করে। এই কমান্ডগুলি সাধারণত এমন হবে যা মেকফিলগুলি জানবে এমন সমস্ত শেষ-পণ্য তৈরি করে তবে এটি কিছু করতে পারে।
ডামি টার্গেটের অন্যান্য উদাহরণগুলি "পরিষ্কার" এবং "ইনস্টল" এবং তারা একইভাবে কাজ করে।
আপনি যদি এখনও এটি না পড়ে থাকেন তবে আপনার এটি পড়া উচিত জিএনইউ মেক ম্যানুয়ালটি , এটি একটি দুর্দান্ত টিউটোরিয়ালও।