การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก
ดึงไลบรารีภายนอกด้วย vcpkg และ Conan แล้วผสานเข้ากับ CMake
การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงใช้ตัวจัดการแพ็กเกจ
การดาวน์โหลดและสร้างส่วนพึ่งพาสำหรับ C++ ด้วยตนเองเป็นเรื่องยุ่งยาก ตัวจัดการแพ็กเกจช่วยทำให้การดึงข้อมูล การสร้าง และการกำหนดค่าไลบรารีจากภายนอกเป็นแบบอัตโนมัติ
ตัวเลือกหลักสองตัว
ตัวจัดการแพ็กเกจ C++ ชั้นนำสองตัว:
- vcpkg — ได้รับการสนับสนุนจาก Microsoft ใช้เฉพาะซอร์สโค้ด และผสานการทำงานกับ CMake
- Conan — โอเพนซอร์ส รองรับไฟล์ไบนารี และยืดหยุ่นกว่า
การตั้งค่า vcpkg
โคลนคลังเก็บ vcpkg และเริ่มต้นระบบ กำหนดไฟล์ชุดเครื่องมือในคำสั่ง CMake
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && ./bootstrap-vcpkg.sh
./vcpkg install fmt spdlogการเชื่อมโยง vcpkg ใน CMake
ส่งไฟล์ชุดเครื่องมือไปพร้อมกับการกำหนดค่า CMake จากนั้น find_package จะทำงานตามปกติ
cmake -B build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmakeการใช้ vcpkg.json (โหมดรายการกำกับ)
ประกาศส่วนพึ่งพาในไฟล์ vcpkg.json โดย vcpkg จะติดตั้งส่วนพึ่งพาเหล่านั้นแยกตามโครงการ
{
"name": "my-app",
"version-string": "0.1.0",
"dependencies": ["fmt", "spdlog", "nlohmann-json"]
}การตั้งค่า Conan
ติดตั้ง Conan ด้วย pip แล้วสร้าง conanfile.txt หรือ conanfile.py
pip install conan
conan profile detect
conan install . --build=missingตัวอย่าง conanfile.txt
ระบุรายการที่ต้องใช้ ตัวสร้าง และตัวเลือก
[requires]
fmt/10.1.1
spdlog/1.12.0
[generators]
CMakeDeps
CMakeToolchainการผสาน Conan กับ CMake
Conan จะสร้างไฟล์ CMake เมื่อคุณเรียกใช้ install ใช้ไฟล์เหล่านั้นผ่านไฟล์ชุดเครื่องมือ หรือรวมไฟล์ CMake ที่สร้างขึ้น
cmake -B build -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmakeFetchContent: ทางเลือกแบบเนทีฟของ CMake
สำหรับกรณีง่าย ๆ CMake มี FetchContent ในตัวเพื่อดาวน์โหลดและเพิ่มส่วนพึ่งพาขณะกำหนดค่า
include(FetchContent)
FetchContent_Declare(fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
GIT_TAG 10.1.1
)
FetchContent_MakeAvailable(fmt)
target_link_libraries(myapp PRIVATE fmt::fmt)การเลือกเครื่องมือ
แนวทางอย่างรวดเร็ว:
- โครงการขนาดเล็ก →
FetchContent - โครงการขนาดใหญ่ที่มีส่วนพึ่งพาไม่ซับซ้อน →
vcpkg - การสร้างที่ซับซ้อนและมีแคชไฟล์ไบนารี →
Conan
การสร้างที่ทำซ้ำได้
ตรึงเวอร์ชันเฉพาะไว้ในไฟล์รายการกำกับ ไฟล์ล็อก (conan.lock) จะบันทึกเวอร์ชันที่แก้ไขแล้วอย่างถูกต้อง เพื่อให้สร้างซ้ำได้ผลเหมือนเดิม
การแคชไฟล์ไบนารี
ทั้ง Conan และ vcpkg รองรับการแคชไฟล์ไบนารี ทำให้การสร้างโดย CI เร็วขึ้นหลายเท่าตัว ควรตั้งค่าแคชที่ใช้ร่วมกันสำหรับทีม
ตรวจสอบความเข้าใจ
กลไกใดของ CMake ที่ดาวน์โหลดและสร้างส่วนพึ่งพาขณะกำหนดค่า โดยไม่ต้องใช้เครื่องมือภายนอก
สรุป
vcpkg และ Conan ช่วยทำให้การจัดการส่วนพึ่งพาของ C++ เป็นแบบอัตโนมัติ ส่วน FetchContent ของ CMake เป็นทางเลือกน้ำหนักเบา ควรตรึงเวอร์ชัน แคชไฟล์ไบนารี และใช้ find_package ใน CMake เพื่อใช้งานไลบรารีที่ติดตั้งไว้
เรียนรู้ C++ ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 51
- บทเรียน
- 203
คำถามที่พบบ่อย
บทเรียน “การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก”
ดึงไลบรารีภายนอกด้วย vcpkg และ Conan แล้วผสานเข้ากับ CMake คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม
ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างโปรเจกต์ CMake และ CMakeLists.txt
- เป้าหมาย การเชื่อมโยง และการมองเห็น PUBLIC PRIVATE
- การใช้ vcpkg และ Conan จัดการไลบรารีภายนอก
- การสร้างไฟล์สำหรับ IDE และการสร้างข้ามแพลตฟอร์ม