فایلهای کتابخونه در لینوکس

کتابخونه ها، کد های آماده ای هستن که برنامه ها ازشون استفاده میکنن و دیگه نیاز نیست برنامه نویس اونها رو پیاده سازی کنن.

تو لینوکس به این فایلها Shared Library یا Shared Object میگن که پسوند so دارن (تو ویندوز پسوندشون dll هست.)

کسایی که برنامه میسازن دو تا راه دارن تا از کتابخونه های مورد نظرشون استفاده کنن

  1. اونا رو مستقیم در کد برنامشون قرار بدن که میشه Static Linking
  2. از سیستم عامل اونا رو درخواست کنن که میشه Dynamic Linking

چون Static Linking باعث افزایش حجم برنامه و مشکلات دیگه ای میشه معمولا گزینه دوم استفاده میشه

برای اینکه ببینید یک فایل اجرایی باینری، به چه کتابخونه هایی نیاز داره از دستور ldd استفاده میکنیم

مسیرهایی که سیستم عامل برای پیدا کردن کتابخونه ها میگرده در فایل etc/ld.so.conf/ قرار داده میشه.

برای اینکه روال بارگذاری کتابخونه ها سریعتر انجام بشه لیست کتابخونه های پیدا شده، در فایل etc/ld.so.cache/ گذاشته میشه تا هر دفعه لازم نباشه تمام مسیر ها ی تعریف شده جستجو بشن.

پس شما برای اینکه کتابخونه های مورد نظرتون رو به سیستم عامل اضافه کنید کافه مسیرش رو به ld.so.conf اضافه کنید

همچنین میتونید از دستور زیر استفاده کنید، این دستور یک symbolic link از مسیر مشخص شده در یکی از مسیرهای مورد تایید سیستم عامل برای بارگذاری کتابخونه میسازه

بعد ‍‍`ldconfig` رو اجرا کنید تا فایل ld.so.cache به روز بشه.

همچینن میتویند با سوییچ v- لیست تمام کتابخونه هایی که پیدا شده رو ببینید

البته شاید شما دسترسی های لازم رو نداشته باشید یا اینکه یه دلیل دیگه ای داشته باشید که نخواید کتابخونه های کلی سیستم رو عوض کنید، یه راه دیگه این هست که مسیر کتابخونه رو به متغیر محیطی `LD_LIBRARY_PATH` اضافه کنید

سیستم عامل برای بارگذاری کتابخونه ها، قبل از بارگذاری فایل ld.so.cache مسیرهای ‍‍‍‍`LD_LIBRARY_PATH` رو جستجو میکنه

منبع ۱

منبع ۲

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *