Makefile নামক তৈরী করে hello
যদি যে কোনো একটি এক্সিকিউটেবল main.cpp
, hello.cpp
, factorial.cpp
পরিবর্তন করেছেন। এই স্পেসিফিকেশন অর্জনের সবচেয়ে ছোট মেকফিলটি হতে পারে:
hello: main.cpp hello.cpp factorial.cpp
g++ -o hello main.cpp hello.cpp factorial.cpp
- প্রো: পড়া খুব সহজ
- কন: রক্ষণাবেক্ষণ দুঃস্বপ্ন, সি ++ নির্ভরতার নকল
- কন: দক্ষতার সমস্যা, কেবলমাত্র একটি পরিবর্তন করা হলেও আমরা সমস্ত সি ++ পুনরায় সংকলন করি
উপরেরটির উন্নতি করতে, আমরা কেবলমাত্র সেই সি ++ ফাইলগুলি সংকলন করেছি যা সম্পাদনা করা হয়েছিল। তারপরে, আমরা ফলস্বরূপ অবজেক্ট ফাইলগুলি একসাথে লিঙ্ক করি।
OBJECTS=main.o hello.o factorial.o
hello: $(OBJECTS)
g++ -o hello $(OBJECTS)
main.o: main.cpp
g++ -c main.cpp
hello.o: hello.cpp
g++ -c hello.cpp
factorial.o: factorial.cpp
g++ -c factorial.cpp
- প্রো: দক্ষতা সমস্যা সংশোধন করে
- কন: নতুন রক্ষণাবেক্ষণ দুঃস্বপ্ন, অবজেক্ট ফাইলের বিধিগুলিতে সম্ভাব্য টাইপ
এটির উন্নতি করার জন্য, আমরা একক নিয়মে সমস্ত অবজেক্ট ফাইলের বিধিগুলি প্রতিস্থাপন করতে পারি .cpp.o
:
OBJECTS=main.o hello.o factorial.o
hello: $(OBJECTS)
g++ -o hello $(OBJECTS)
.cpp.o:
g++ -c $< -o $@
- প্রো: শর্ট মেকফাইল করে ফিরে কিছুটা সহজ পড়া
এখানে .cpp.o
বিধিটি নির্ধারণ করে যে কীভাবে তৈরি করা anyfile.o
যায় anyfile.cpp
।
$<
প্রথম নির্ভরতার সাথে মেলে, এক্ষেত্রে, anyfile.cpp
$@
লক্ষ্য মিলে যায়, এই ক্ষেত্রে, anyfile.o
।
মেকফাইলে উপস্থিত অন্যান্য পরিবর্তনগুলি হ'ল:
- G ++ থেকে যেকোন সি ++ কম্পাইলারে সংকলক পরিবর্তন করা সহজ করে তোলা।
- সংকলক বিকল্পগুলি পরিবর্তন করা সহজ করা।
- লিঙ্কার বিকল্পগুলি পরিবর্তন করা সহজ করে তোলা।
- সি ++ উত্স ফাইল এবং আউটপুট পরিবর্তন করা সহজ করা।
- আপনার অ্যাপ্লিকেশন তৈরির চেষ্টা করার আগে আপনার সমস্ত উত্স ফাইল উপস্থিত রয়েছে তা নিশ্চিত করতে একটি তাত্ক্ষণিক পরীক্ষা হিসাবে কাজ করে এমন একটি ডিফল্ট নিয়ম 'সমস্ত' যুক্ত হয়েছে।