วิธีการเขียนและใช้ C++ Libraries
: คู่มือทีละขั้นตอน
การสร้างและใช้ไลบรารีใน C++ คือทักษะที่จำเป็นสำหรับนักพัฒนาที่ต้องการสร้างโค้ดที่โมดูลาร์และนำกลับมาใช้ใหม่ได้ บล็อกโพสต์นี้จะนำคุณผ่านกระบวนการเขียน คอมไพล์ และรวม C++ libraries โดยเฉพาะจะมุ่งเน้นไปที่ไลบรารีแบบแชร์สำหรับทั้ง Linux และ Windows อ่านต่อเพื่อค้นหาตัวอย่างที่เรียบง่ายและคำอธิบายที่ชัดเจนซึ่งจะทำให้หัวข้อนี้เข้าใจได้ง่าย
ความเข้าใจเกี่ยวกับ C++ Libraries
C++ Libraries คืออะไร?
C++ libraries คือชุดของโค้ดที่คอมไพล์ล่วงหน้าซึ่งคุณสามารถรวมเข้ากับโปรเจ็กต์ของคุณเพื่อใช้งานฟังก์ชันที่ต้องการโดยไม่ต้องเขียนโค้ดใหม่ มีไลบรารีหลักสองประเภทใน C++:
- ไลบรารีแบบสถิติ: จะถูกเชื่อมโยงในช่วงเวลาคอมไพล์และกลายเป็นส่วนหนึ่งของไฟล์ประมวลผล ส่งผลให้มีนามสกุลเป็น
.a
บน Linux และ.lib
บน Windows - ไลบรารีแบบไดนามิก: จะถูกเชื่อมโยงในช่วงเวลาดำเนินการ บน Linux จะมีนามสกุลเป็น
.so
ขณะที่บน Windows จะมีไฟล์ที่เทียบเท่าคือ.dll
ในโพสต์นี้ เราจะมุ่งเน้นไปที่การสร้างและใช้ ไลบรารีแบบไดนามิก
การสร้างไลบรารีแบบไดนามิกใน C++
ขั้นตอนที่ 1: เขียนโค้ดไลบรารีของคุณ
เริ่มด้วยตัวอย่างง่ายๆ เราต้องการสร้างไลบรารีที่มีฟังก์ชันสำหรับพิมพ์ข้อความ
-
สร้างไฟล์หัวข้อ (
t.h
):void f();
-
สร้างไฟล์ซอร์ส (
t.cc
):#include <iostream> #include "t.h" void f() { std::cout << "OH HAI. I'M F." << std::endl; }
ขั้นตอนที่ 2: คอมไพล์โค้ดเป็นไลบรารีแบบแชร์
ตอนนี้เรามีโค้ดไลบรารีพร้อมแล้ว เราจะคอมไพล์มันเป็นไลบรารีแบบแชร์ วิธีการคือ:
-
คอมไพล์โค้ดซอร์สเป็นโค้ดวัตถุ:
g++ -fpic -c t.cc # ผลลัพธ์คือ t.o
-
สร้างไลบรารีแบบแชร์:
g++ -shared -o t.so t.o # ผลลัพธ์คือ t.so
ขั้นตอนที่ 3: ใช้ไลบรารีในโปรแกรมหลักของคุณ
ตอนนี้ให้เราสร้างแอปพลิเคชันหลักที่จะใช้ไลบรารีที่เราสร้างขึ้น
- สร้างไฟล์หลัก (
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++ แล้ว! ขอให้สนุกกับการเขียนโค้ด!