BazelCon 2024 登録の受け付けを開始しました。
C++ と Bazel
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
<ph type="x-smartling-placeholder">
</ph>
問題を報告するopen_in_new
ソースを表示open_in_new
夜間
·
7.3
·
7.2
·
7.1
·
7.0
·
6.5
このページには、C++ プロジェクトで Bazel を使用する場合に役立つリソースが記載されています。リンク先
チュートリアル、ビルドルールなど、C++ のビルドに固有の情報が
紹介しました。
Bazel の使用
次のリソースは、C++ プロジェクトで Bazel を使用する際に役立ちます。
ベスト プラクティス
Bazel の一般的なベスト プラクティスに加えて、以下があります。
C++ プロジェクトに固有のベスト プラクティスを紹介します。
BUILD ファイル
BUILD ファイルを作成する際は、以下のガイドラインに従ってください。
各 BUILD
ファイルには 1 つの cc_library
を含める必要があります。
ディレクトリ内のコンパイル単位ごとに、ルール ターゲットを指定します。
C++ ライブラリは可能な限り細かく
インクリメンタリティを最大化してビルドを並列化できます
srcs
にソースファイルが 1 つしかない場合は、ライブラリに
その C++ ファイルの名前。このライブラリには、一致する C++ ファイルを含める必要があります。
ヘッダー ファイル、ライブラリの直接依存関係などです。例:
cc_library(
name = "mylib",
srcs = ["mylib.cc"],
hdrs = ["mylib.h"],
deps = [":lower-level-lib"]
)
ファイル内の cc_library
ターゲットごとに 1 つの cc_test
ルール ターゲットを使用します。キャンペーンに
ターゲット [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
ルール ターゲットの引数。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-08-22 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": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-08-22 UTC\u3002"}
[[["わかりやすい","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"]],["最終更新日 2024-08-22 UTC。"],[],[]]