Сборка gRP C C ++ из исходного кода - PullRequest
1 голос
/ 20 января 2020

Я пытаюсь собрать gRPC c++ из источника из Build gRP C C ++ Я уже установил bazel. Хотя, когда я пытался собрать, я вижу следующую ошибку.

$ bazel build :all
Starting local Bazel server and connecting to it...
ERROR: /home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/io_bazel_rules_python/python/pip.bzl:39:25: Traceback (most recent 
call last):
        File "/home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/io_bazel_rules_python/python/pip.bzl", line 37
                repository_rule(<2 more arguments>)
        File "/home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/io_bazel_rules_python/python/pip.bzl", line 39, in repositor
y_rule
                attr.label(allow_files = True, <2 more arguments>)
'single_file' is no longer supported. use allow_single_file instead. You can use --incompatible_disable_deprecated_attr_params=false to temporarily disable th
is check.
ERROR: error loading package '': Extension file 'python/pip.bzl' has errors
ERROR: error loading package '': Extension file 'python/pip.bzl' has errors
INFO: Elapsed time: 7.505s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)

Может кто-то указать, что мне здесь не хватает.

Когда я пытался запустить bazel info, я получаю следующую ошибку .

$ bazel info --incompatible_disable_deprecated_attr_params=false
ERROR: /home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/org_pubref_rules_protobuf/protobuf/internal/proto_compile.bzl:771:21: name 'FileType' is not defined
ERROR: error loading package '': in /home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/org_pubref_rules_protobuf/python/rules.bzl: in /home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/org_pubref_rules_protobuf/cpp/rules.bzl: in /home/bigz/.cache/bazel/_bazel_bigz/a68d37101a3d172c639dd67a1941f719/external/org_pubref_rules_protobuf/protobuf/rules.bzl: Extension 'protobuf/internal/proto_compile.bzl' has errors

Хотя bazel --version отображается как bazel 2.0.0.

$ bazel --version
bazel 2.0.0

Самым последним коммитом gRP C является 9dfbd34f5c0b20bd77658c73c59b9a3e4e8f4e14

$ git log -1
commit 9dfbd34f5c0b20bd77658c73c59b9a3e4e8f4e14 (HEAD, tag: v1.20.0)
Merge: 1b488f8361 ae72bf76b3
Author: Lidi Zheng <scallopsky@gmail.com>
Date:   Mon Apr 15 15:38:24 2019 -0700

    Merge pull request #18760 from lidizheng/v1.20.x

    Bump version to v1.20.0

1 Ответ

2 голосов
/ 21 января 2020

Коммит grp c, который вы пытаетесь собрать, несовместим с версией bazel, которую вы установили (2.0.0).

Коммит 9dfbd34f5c0b20bd77658c73c59b9a3e4e8f4e14 довольно старый (15 апреля 19), где ГЛАВА этого репо (на момент написания этой статьи) находится в eba60d8dbe4099c34b8097b2c89998d4484740ac, что теперь в BUILDING.md показывает, что вам нужна, по крайней мере, версия 1.0.0 (есть оболочка Базеля на tools/bazel, которая все равно будет перехватывать и использовать 1.0.0)

Однако для вашего конкретного c коммита, пробуя разные версии, Мне удалось создать :all метку с базальной версией 0,20,0

Я бы порекомендовал попробовать Базелиск . Вы можете добавить его в свой PATH, добавить файл .bazelversion в хранилище, и bazelisk позаботится о загрузке необходимой версии bazel.

...