স্ট্যাটিক লাইব্রেরি (এলআইবি) এবং ডায়নামিক লাইব্রেরি (ডিএলএল) রয়েছে - তবে নোট করুন যে .LB ফাইলগুলি স্ট্যাটিক লাইব্রেরি হতে পারে (বস্তুযুক্ত ফাইলগুলি) বা আমদানি গ্রন্থাগারগুলি (লিঙ্কারকে একটি ডিএলএলে লিঙ্ক করার অনুমতি দেওয়ার জন্য প্রতীকযুক্ত) থাকতে পারে।
গ্রন্থাগারগুলি ব্যবহৃত হয় কারণ আপনার কাছে এমন কোড থাকতে পারে যা আপনি অনেক প্রোগ্রামে ব্যবহার করতে চান। উদাহরণস্বরূপ, আপনি যদি কোনও ফাংশন লিখেন যা একটি স্ট্রিংয়ে অক্ষরের সংখ্যা গণনা করে, তবে সেই ফাংশন প্রচুর প্রোগ্রামে কার্যকর হবে। একবার আপনি যদি সেই ফাংশনটি সঠিকভাবে কাজ করতে পারেন তবে আপনি যতবারই এটি ব্যবহার করবেন প্রত্যেকবার কোডটি পুনরায় কম্পাইল করতে চান না, সুতরাং আপনি সেই ফাংশনের জন্য এক্সিকিউটেবল কোডটি একটি লাইব্রেরিতে রেখে দেন এবং লিঙ্কারটি আপনার প্রোগ্রামে সংকলিত কোডটি বের করে বের করে দিতে পারে can । স্থির গ্রন্থাগারগুলিকে কখনও কখনও এই কারণে 'সংরক্ষণাগার' বলা হয়।
ডায়নামিক লাইব্রেরিগুলি এটি আরও এক ধাপ এগিয়ে নিয়ে যায়। প্রতিটি প্রোগ্রামে লাইব্রেরি ফাংশনগুলির একাধিক কপি থাকা অপ্রয়োজনীয় বলে মনে হচ্ছে। কেন তারা সকলে ফাংশনটির একটি অনুলিপি ভাগ করতে পারে না? ডায়নামিক লাইব্রেরি এটির জন্য। আপনার প্রোগ্রামটিতে পাঠাগার কোডটি তৈরি করার পরিবর্তে এটি যখন মেমরিতে লোড হয় তখন এটি আপনার প্রোগ্রামে ম্যাপিংয়ের মাধ্যমে চালানো যেতে পারে। একই ফাংশনগুলি ব্যবহার করে একই সময়ে চলমান একাধিক প্রোগ্রামগুলি মেমরি সঞ্চয় করে একটি কপি ভাগ করতে পারে। প্রকৃতপক্ষে, আপনি আপনার কোডের পথের উপর নির্ভর করে কেবল প্রয়োজন হিসাবে গতিশীল লাইব্রেরিগুলি লোড করতে পারেন। আপনি যদি কোনও মুদ্রণ না করে থাকেন তবে মুদ্রকটির রুটিনগুলি মেমোরি গ্রহণ করার কোনও মানে নেই। অন্যদিকে, এর অর্থ হল আপনার প্রোগ্রামটি চালিত প্রতিটি মেশিনে আপনার গতিশীল লাইব্রেরির একটি অনুলিপি থাকতে হবে।
উদাহরণস্বরূপ, 'সি' তে লিখিত প্রায় প্রতিটি প্রোগ্রামের জন্য 'সি রানটাইম লাইব্রেরি' নামে পরিচিত একটি লাইব্রেরি থেকে ফাংশন প্রয়োজন, যদিও কয়েকটি প্রোগ্রামের সমস্ত ফাংশনের প্রয়োজন হবে। সি রানটাইম স্থিতিশীল এবং গতিশীল উভয় সংস্করণে আসে, সুতরাং আপনি নির্দিষ্ট প্রয়োজনীয়তার উপর নির্ভর করে আপনার প্রোগ্রামটি কোন সংস্করণ ব্যবহার করে তা নির্ধারণ করতে পারেন।