0Pricing
C++ Academy · درس

استخدام vcpkg وConan لإدارة التبعيات

اجلب المكتبات الخارجية باستخدام vcpkg وConan، وادمجها مع CMake.

استخدام vcpkg وConan لإدارة التبعيات درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.

لماذا مدير حزم؟

يُعدّ تنزيل التبعيات وبناؤها يدويًا في C++ أمرًا شاقًا. تعمل مدراء الحزم على أتمتة جلب مكتبات الجهات الخارجية وبنائها وضبطها.

الخياران المهيمنان

مديرا الحزم الرائدان للغة C++:

  • vcpkg — مدعوم من Microsoft، ويعتمد على المصدر فقط، ويتكامل مع CMake
  • Conan — مفتوح المصدر، ويدعم الملفات الثنائية، وأكثر مرونة

إعداد vcpkg

استنسخ مستودع vcpkg ونفّذ عملية bootstrap. واضبط ملف toolchain في استدعاء CMake.

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && ./bootstrap-vcpkg.sh
./vcpkg install fmt spdlog

الربط مع vcpkg في CMake

مرّر ملف toolchain عند إعداد 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. استخدمها عبر ملف toolchain أو بتضمين ملفات CMake المُنشأة.

cmake -B build -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake

FetchContent: بديل أصلي في 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 لاستخدام المكتبات المثبّتة.

الأسئلة الشائعة

هل درس «استخدام vcpkg وConan لإدارة التبعيات» مجاني؟

نعم — نص درس «استخدام vcpkg وConan لإدارة التبعيات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.

ماذا ستتعلم في «استخدام vcpkg وConan لإدارة التبعيات»؟

اجلب المكتبات الخارجية باستخدام vcpkg وConan، وادمجها مع CMake. تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟

لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «استخدام vcpkg وConan لإدارة التبعيات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟

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

جميع الدروس في هذه الدورة

  1. هيكل مشروع CMake وCMakeLists.txt
  2. الأهداف والربط وإتاحة الوصول: ‏PUBLIC وPRIVATE
  3. استخدام vcpkg وConan لإدارة التبعيات
  4. إنشاء ملفات IDE وبناءات متعددة المنصات
← العودة إلى C++ Academy