كيفية كتابة واستخدام مكتبات C++: دليل خطوة بخطوة

إن إنشاء واستخدام المكتبات في C++ هو مهارة أساسية للمطورين الذين يرغبون في بناء كود قابل للتعديل وإعادة الاستخدام. ستوجهك هذه المقالة خلال عملية كتابة وتجميع ودمج مكتبات C++، مع التركيز بشكل خاص على المكتبات المشتركة لكل من بيئات لينيكس وويندوز. تابع القراءة لاكتشاف أمثلة بسيطة وشروحات واضحة ستجعل هذا الموضوع سهل الفهم.

فهم مكتبات C++

ما هي مكتبات C++؟

مكتبات C++ هي مجموعات من الشيفرة المترجمة مسبقًا التي يمكنك تضمينها في مشاريعك لإعادة استخدام الوظائف دون إعادة كتابة الكود. هناك نوعان رئيسيان من المكتبات في C++:

  • المكتبات الساكنة: يتم ربطها في وقت الترجمة وتصبح جزءًا من الملف التنفيذي. غالبًا ما تحمل هذه المكتبات امتداد .a في لينيكس و .lib في ويندوز.
  • المكتبات الديناميكية: يتم ربطها في وقت التشغيل. في لينيكس، تحمل امتداد .so، بينما في ويندوز، الملفات المكافئة تحمل امتداد .dll.

في هذه المقالة، سنركز على إنشاء واستخدام المكتبات الديناميكية.

إنشاء مكتبة ديناميكية في C++

الخطوة 1: كتابة كود المكتبة الخاص بك

لنبدأ بمثال بسيط. نريد إنشاء مكتبة تحتوي على دالة ستقوم بطباعة رسالة.

  1. إنشاء ملف الرأس (t.h):

    void f();
    
  2. إنشاء ملف المصدر (t.cc):

    #include <iostream>
    #include "t.h"    
    
    void f() {
        std::cout << "OH HAI.  I'M F." << std::endl;
    }
    

الخطوة 2: تجميع الكود في مكتبة مشتركة

الآن بعد أن أصبح لدينا كود المكتبة جاهزًا، سنقوم بتجميعه في مكتبة مشتركة. إليك كيفية القيام بذلك:

  1. تجميع كود المصدر إلى كود كائن:

    g++ -fpic -c t.cc         # ينتج t.o
    
  2. إنشاء المكتبة المشتركة:

    g++ -shared -o t.so t.o   # ينتج t.so
    

الخطوة 3: استخدام المكتبة في البرنامج الرئيسي

الآن، دعنا ننشئ تطبيقًا رئيسيًا سيستخدم المكتبة التي أنشأناها للتو.

  1. إنشاء الملف الرئيسي (r.cc):
    #include "t.h"
    
    int main() {
        f(); // استدعاء الدالة من المكتبة
        return 0;
    }
    

الخطوة 4: تجميع وربط تطبيقك مع المكتبة

لتجميع البرنامج الرئيسي مع المكتبة المشتركة، استخدم الأمر التالي:

g++ r.cc t.so -o mainApp

الخطوة 5: إعداد مسار المكتبة (لينيكس فقط)

في لينيكس، تأكد من أن البرنامج يمكنه العثور على المكتبة المشتركة أثناء التشغيل. يمكنك القيام بذلك عن طريق إعداد LD_LIBRARY_PATH لتضمين الدليل الحالي:

export LD_LIBRARY_PATH="."

لا تحتاج إلى تنفيذ هذه الخطوة إذا قمت بتثبيت المكتبة المشتركة في دليل مكتبات عالمي.

الخطوة النهائية: تشغيل تطبيقك

بعد التجميع، يمكنك تشغيل تطبيقك:

./mainApp

يجب أن ترى الناتج:

OH HAI.  I'M F.

ملخص الخطوات الرئيسية

  • إنشاء ملف رأس لوظائف المكتبة الخاصة بك.
  • كتابة التنفيذ في ملف مصدر.
  • تجميع ملف المصدر إلى ملف كائن.
  • إنشاء مكتبة مشتركة من ملف الكائن.
  • كتابة تطبيق رئيسي وربطه بالمكتبة.
  • تأكد من أن تطبيقك يمكنه العثور على المكتبة أثناء التشغيل.

من خلال اتباع هذه الخطوات، يمكنك إنشاء واستخدام مكتبات C++ الخاصة بك بنجاح، مما يمهد الطريق لكتابة كود منظم وقابل لإعادة الاستخدام. هذه المهارة لا تقدر بثمن لأي مطور يهدف إلى تحسين ممارساته البرمجية في C++.

الآن أنت جاهز لاستكشاف وإنشاء مكتبات ديناميكية خاصة بك في C++. برمجة ممتعة!