تحتوي هذه الصفحة على الموارد التي تساعدك في استخدام Bazel مع مشاريع C++. فهي ترتبط ببرنامج تعليمي وإنشاء القواعد وغيرها من المعلومات المتعلقة بإنشاء مشاريع C++ باستخدام Bazel.
العمل مع بازيل
ستساعدك المراجع التالية في العمل مع Bazel في مشاريع C++:
- برنامج تعليمي: إنشاء مشروع C++
- حالات الاستخدام الشائعة باستخدام C++
- قواعد C/C++
- ضبط سلسلة أدوات C++
- برنامج تعليمي: ضبط سلاسل أدوات C++
- الدمج مع قواعد C++
أفضل الممارسات
بالإضافة إلى أفضل ممارسات Bazel العامة، في ما يلي أفضل الممارسات الخاصة بمشاريع C++.
إنشاء الملفات
اتّبِع الإرشادات أدناه عند إنشاء ملفات BUILD:
- يجب أن يحتوي كل ملف - BUILDعلى قاعدة قاعدة- cc_libraryواحدة لكل مجموعة مجمّعة في الدليل.
- عليك تبسيط مكتبات C++ قدر الإمكان لزيادة التزايد وموازاة الإصدار. 
- إذا كان هناك ملف مصدر واحد في - srcs، يمكنك تسمية المكتبة باسم ملف C++ نفسه. يجب أن تحتوي هذه المكتبة على ملفات C++ وأي ملفات عناوين مطابقة والتبعيات المباشرة للمكتبة. مثال:- cc_library( name = "mylib", srcs = ["mylib.cc"], hdrs = ["mylib.h"], deps = [":lower-level-lib"] )
- استخدم هدف قاعدة - cc_testواحد لكل هدف- cc_libraryفي الملف. أدخِل اسمًا للهدف- [library-name]_testوملف المصدر- [library-name]_test.cc. على سبيل المثال، سيبدو هدف الاختبار لاستهداف مكتبة- mylibالمعروض أعلاه على النحو التالي:- cc_test( name = "mylib_test", srcs = ["mylib_test.cc"], deps = [":mylib"] )
تضمين المسارات
اتّبع هذه الإرشادات لتضمين المسارات:
- تأكد من أن جميع المسارات تتضمّن مسارات ذات صلة بدليل مساحة العمل. 
- استخدِم علامات الاقتباس ( - #include "foo/bar/baz.h") للعناوين غير التابعة للنظام، وليس الأقواس بين القوسين (- #include <foo/bar/baz.h>).
- تجنَّب استخدام اختصارات دليل UNIX، مثل - .(الدليل الحالي) أو- ..(الدليل الرئيسي).
- قديم أو - third_partyالذي يتطلب الإشارة خارج مستودع المشروع، مثل المستودع الخارجي الذي يتطلب بادئة، استخدم- include_prefixو- strip_include_prefixالوسيطات على- cc_libraryقاعدة القاعدة.