این صفحه حاوی منابعی است که به شما در استفاده از 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>
).از استفاده از میانبرهای دایرکتوری یونیکس مانند
.
(دایرکتوری فعلی) یا..
(دایرکتوری والد).برای کدهای قدیمی یا
third_party
که شامل اشاره به خارج از مخزن پروژه است، مانند مخزن خارجی شامل نیاز به پیشوند، از آرگومان هایinclude_prefix
وstrip_include_prefix
در هدف قانونcc_library
استفاده کنید.