استخدام 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.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 لاستخدام المكتبات المثبّتة.
الأسئلة الشائعة
هل درس «استخدام 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- هيكل مشروع CMake وCMakeLists.txt
- الأهداف والربط وإتاحة الوصول: PUBLIC وPRIVATE
- استخدام vcpkg وConan لإدارة التبعيات
- إنشاء ملفات IDE وبناءات متعددة المنصات