วิธีการเขียนและใช้ C++ Libraries: คู่มือทีละขั้นตอน

การสร้างและใช้ไลบรารีใน C++ คือทักษะที่จำเป็นสำหรับนักพัฒนาที่ต้องการสร้างโค้ดที่โมดูลาร์และนำกลับมาใช้ใหม่ได้ บล็อกโพสต์นี้จะนำคุณผ่านกระบวนการเขียน คอมไพล์ และรวม C++ libraries โดยเฉพาะจะมุ่งเน้นไปที่ไลบรารีแบบแชร์สำหรับทั้ง Linux และ Windows อ่านต่อเพื่อค้นหาตัวอย่างที่เรียบง่ายและคำอธิบายที่ชัดเจนซึ่งจะทำให้หัวข้อนี้เข้าใจได้ง่าย

ความเข้าใจเกี่ยวกับ C++ Libraries

C++ Libraries คืออะไร?

C++ libraries คือชุดของโค้ดที่คอมไพล์ล่วงหน้าซึ่งคุณสามารถรวมเข้ากับโปรเจ็กต์ของคุณเพื่อใช้งานฟังก์ชันที่ต้องการโดยไม่ต้องเขียนโค้ดใหม่ มีไลบรารีหลักสองประเภทใน C++:

  • ไลบรารีแบบสถิติ: จะถูกเชื่อมโยงในช่วงเวลาคอมไพล์และกลายเป็นส่วนหนึ่งของไฟล์ประมวลผล ส่งผลให้มีนามสกุลเป็น .a บน Linux และ .lib บน Windows
  • ไลบรารีแบบไดนามิก: จะถูกเชื่อมโยงในช่วงเวลาดำเนินการ บน Linux จะมีนามสกุลเป็น .so ขณะที่บน Windows จะมีไฟล์ที่เทียบเท่าคือ .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: ตั้งค่าเส้นทางของไลบรารี (เฉพาะ Linux)

ใน Linux ตรวจสอบให้แน่ใจว่าโปรแกรมสามารถหามือของไลบรารีแบบแชร์ในระหว่างดำเนินการได้ คุณสามารถทำได้โดยการตั้งค่า LD_LIBRARY_PATH เพื่อรวมไดเรกทอรีปัจจุบัน:

export LD_LIBRARY_PATH="."

คุณไม่จำเป็นต้องทำขั้นตอนนี้หากคุณติดตั้งไลบรารีแบบแชร์ในไดเรกทอรีไลบรารีทั่วไป

ขั้นตอนสุดท้าย: รันแอปพลิเคชันของคุณ

หลังจากการคอมไพล์ คุณสามารถรันแอปพลิเคชันของคุณ:

./mainApp

คุณควรเห็นผลลัพธ์:

OH HAI.  I'M F.

สรุปขั้นตอนสำคัญ

  • สร้างไฟล์หัวข้อสำหรับฟังก์ชันของไลบรารีคุณ
  • เขียนการสร้างในไฟล์ซอร์ส
  • คอมไพล์ไฟล์ซอร์สเป็นไฟล์วัตถุ
  • สร้างไลบรารีแบบแชร์จากไฟล์วัตถุ
  • เขียนแอปพลิเคชันหลักและลิงก์กับไลบรารี
  • ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณสามารถหามือของไลบรารีในระหว่างดำเนินการได้

โดยการทำตามขั้นตอนเหล่านี้ คุณสามารถสร้างและใช้ C++ libraries ของคุณเองได้สำเร็จ ทำให้โค้ดของคุณเป็นระเบียบและนำกลับมาใช้ใหม่ได้ ทักษะนี้มีค่าอย่างมากสำหรับนักพัฒนาที่ต้องการปรับปรุงวิธีการเขียนโปรแกรมใน C++

ตอนนี้คุณพร้อมที่จะสำรวจและสร้างไลบรารีแบบไดนามิกของคุณใน C++ แล้ว! ขอให้สนุกกับการเขียนโค้ด!