הדף הזה מכיל משאבים שעוזרים לך להשתמש ב-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
.