একটি C++ প্রোগ্রামের সংকলন তিনটি ধাপ নিয়ে গঠিত -
- প্রি-প্রসেসিং − সহজ ভাষায়, একটি সি প্রিপ্রসেসর হল একটি টেক্সট প্রতিস্থাপন টুল এবং এটি কম্পাইলারকে প্রকৃত সংকলনের আগে প্রয়োজনীয় প্রাক-প্রসেসিং করার নির্দেশ দেয়। এটি প্রি-প্রসেসিং নির্দেশিকা পরিচালনা করে যেমন #include, #define, ইত্যাদি।
- সংকলন - সংকলনটি প্রি-প্রসেস করা ফাইলগুলিতে সঞ্চালিত হয়। কম্পাইলার বিশুদ্ধ C++ সোর্স কোড পার্স করে এবং এটিকে অ্যাসেম্বলি কোডে রূপান্তর করে। এটি পরিবর্তে অ্যাসেম্বলারকে কল করে যা এসেম্বলি কোডটিকে মেশিন কোডে (বাইনারী) অবজেক্ট ফাইল হিসাবে রূপান্তর করে। এই অবজেক্ট ফাইলগুলি সংজ্ঞায়িত নয় এমন চিহ্নগুলিকে উল্লেখ করতে পারে। সোর্স কোডটি সুগঠিত না হলে কম্পাইলার একটি ত্রুটি দেবে না। সিনট্যাক্স ত্রুটি, ব্যর্থ ওভারলোড রেজোলিউশন ত্রুটি, ইত্যাদি এই ধাপে ঘটে। এছাড়াও নোট করুন যে এই অবজেক্ট ফাইলগুলি স্ট্যাটিক লাইব্রেরি হিসাবেও ব্যবহার করা যেতে পারে।
- লিঙ্ক করা হচ্ছে − লিঙ্কারটি কম্পাইলার উত্পাদিত অবজেক্ট ফাইল থেকে চূড়ান্ত সংকলন আউটপুট তৈরি করে। এই আউটপুট একটি ভাগ করা (বা গতিশীল) লাইব্রেরি বা একটি এক্সিকিউটেবল হতে পারে। এটি সঠিক ঠিকানাগুলির সাথে অনির্ধারিত রেফারেন্সগুলি প্রতিস্থাপন করে অবজেক্ট ফাইলগুলিকে লিঙ্ক করে। এই চিহ্নগুলি অন্যান্য অবজেক্ট ফাইলে বা লাইব্রেরিতে সংজ্ঞায়িত করা উচিত। যদি সেগুলি স্ট্যান্ডার্ড লাইব্রেরি ছাড়া অন্য লাইব্রেরিতে সংজ্ঞায়িত করা হয়, তাহলে আপনাকে স্পষ্টভাবে সেগুলিকে একটি যুক্তি হিসাবে কম্পাইলারের কাছে পাঠাতে হবে যাতে সেগুলি খুঁজে পাওয়া যায় এবং লিঙ্ক করা যায়৷