برنامه نویسی

کتابخانه مشترک (پیوند پویا) – این در مورد libs نیست

این اولین پست من در اینجا است، پس بریم.

Disclaimer: من با پست هایم توقع ایجاد نمی کنم. هر چیزی که به اشتراک می گذارم بخشی از فرآیند یادگیری من است که اغلب شامل توضیح دادن چیزها به دیگران است. من متوجه شدم که این روش به ویژه در دوران تحصیلم در مدرسه 42 موثر است. بنابراین، من در مورد موضوعات مختلفی که در حال حاضر یاد می‌گیرم یا قبلاً یاد گرفته‌ام پست خواهم گذاشت.


من در واقع در حال انجام یک چالش برای یک فرصت شغلی هستم و با آن دست و پنجه نرم می کردم shared objects و من این کار را در خانه خود انجام می دهم، بنابراین به یاد می آورم که چه کسانی سخت هستند، شخص دیگری در نزدیکی شما نیست که چیزهایی را بپرسد، حتی اگر پاسخ را ندانند، به شما کمک می کنند فکر کنید و راه های جدیدی پیدا کنید یا راه های جدیدی دارند. ایده ها یا حتی بهتر از آن، به شما کمک می کنند تا ایده های جدیدی داشته باشید و غیره.


گام اول

این چالش شامل ایجاد یک کتابخانه مشترک در هر زبان برنامه نویسی به انتخاب من است.
کتابخانه با یک فایل باینری ساخته شده خاص که در آن نوشته شده است آزمایش می شود C. هدف من اطمینان از عملکرد کتابخانه همانطور که در نظر گرفته شده بر اساس خروجی های آزمایشی ارائه شده است.


دارم روش کار می کنم

در طی یک مصاحبه اخیر، چالشی به من ارائه شد: ایجاد یک کتابخانه مشترک که به عنوان یک پردازنده CSV. در ابتدا، من تصمیم گرفتم آن را در Go توسعه دهم. به نظر کار ساده ای بود…

در حالی که نوشتن کد Go به خودی خود مشکلی نبود، چالش واقعی در ادغام کتابخانه با آن به وجود آمد C دودویی. هر تلاشی منجر به خطاهای مختلفی می‌شود که اغلب مربوط به نشانه‌های از دست رفته در شی مشترک تولید شده است (فایل.so).

خوشبختانه، در نهایت راه حلی پیدا کردم و توانستم کتابخانه را با استفاده از باینری ارائه شده آزمایش کنم. با این حال، اجرای برنامه منجر به تخلیه هسته ای شد که نشان دهنده رفتار غیرمنتظره است.

برای رفع این مشکل، من تصمیم گرفتم به C++ سوئیچ کنم. دلیل اصلی، سهولت درک شده در ارتباط با اشیاء مشترک ایجاد شده در آن بود C++ با C باینری ها این رویکرد مشکلات اشکال زدایی را به حداقل رساند و تخلیه های اصلی را حذف کرد.


افکار نهایی

با وجود موانع اولیه، من همچنان در حال مقابله با آن هستم CSV processor چالش در C++. داشتن درک بهتر از اشیاء مشترک و پیوندهای پویا (با تشکر از تجربه قبلی من با کتابخانه های ثابت) قطعا مفید است با این حال، مشکلات اولیه ای که من با آن مواجه شدم زمان قابل توجهی برای حل کردن طول کشید.

سیا!

برخی از مراجع برای یادگیری ایستا و پویا:

زمان کامپایل خود را کاهش دهید
فیلم آموزشی سطح پایین من عاشق این کانال هستم
معرفی و ایجاد
برنامه نویسی C

نوشته های مشابه

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

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

دکمه بازگشت به بالا