הדף הזה מכיל משאבים שעוזרים לך להשתמש ב-Bazel עם פרויקטים של C++. היא מקשרת למדריך, ליצירת כללים ולמידע נוסף שהוא ספציפי לבניית פרויקט C++ באמצעות Bazel.
העבודה עם בזל
המשאבים הבאים יעזרו לך לעבוד עם Bazel בפרויקטים של C++:
- מדריך: בניית פרויקט C++
- +C + תרחישים נפוצים
- כללי C/C++
- הגדרת כלי C++
- מדריך: הגדרה של מחזיקי כלים מסוג C++
- שילוב עם כללי C++
שיטות מומלצות
בנוסף לשיטות המומלצות של Bazel, הנה שיטות מומלצות ספציפיות לפרויקטים ב-+C.
קובצי BUILD
כשיוצרים קובצי 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.