BazelCon 2022 מגיע בין 16 ל-17 בנובמבר לניו יורק באינטרנט. הירשמו עוד היום!
חדש: אנחנו מזמינים אותך להצטרף אלינו ליום הקהילה ב-15 בנובמבר! פרטים ורישום.
C++ ו-Bazel
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
הדף הזה מכיל משאבים שעוזרים לך להשתמש ב-Bazel עם פרויקטים של C++. היא מקשרת למדריך, ליצירת כללים ולמידע נוסף שהוא ספציפי לבניית פרויקט C++ באמצעות Bazel.
העבודה עם בזל
המשאבים הבאים יעזרו לך לעבוד עם Bazel בפרויקטים של 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
.
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2022-10-21 (שעון UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"חסרים לי מידע או פרטים"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"התוכן מורכב מדי או עם יותר מדי שלבים"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"התוכן לא עדכני"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"בעיה בתרגום"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"בעיה בדוגמאות/בקוד"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"סיבה אחרת"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"התוכן קל להבנה"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"התוכן עזר לי לפתור בעיה"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"סיבה אחרת"
}]
{"lastModified": "\u05e2\u05d3\u05db\u05d5\u05df \u05d0\u05d7\u05e8\u05d5\u05df: 2022-10-21 (\u05e9\u05e2\u05d5\u05df UTC)."}
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2022-10-21 (שעון UTC)."],[],[]]