gpt4 book ai didi

c++ - 如何在 Centos 7 上构建 Sorbet(缺少 llvm 工具链)

转载 作者:行者123 更新时间:2023-11-28 01:19:08 33 4
gpt4 key购买 nike

我正在尝试在 Centos 7.5 上构建 Stripe 的 Sorbet 二进制文件,并且我安装了 bazel 0.28.1。

我尝试使用 bazel build//main:sorbet --config=dbg 进行构建,但失败了:

WARNING: The following configs were expanded more than once: [debugsymbols]. 
For repeatable flags, repeats are counted twice and may lead to unexpected behavior.
INFO: Invocation ID: 1b2a6940-59ff-419f-ae57-f6e4129c2102
ERROR: /data/home/elemental/sorbet/main/BUILD:9:1: every rule of type cc_binary
implicitly depends upon the target '@llvm_toolchain//:toolchain',
but this target could not be found because of:
no such package '@llvm_toolchain//': Traceback (most recent call last):
...

看起来我只是缺少 llvm 和 llvm-toolset-7,但安装它们并没有帮助。我错过了什么?

最佳答案

需要修改的位置是实际上https://github.com/DarkDimius/bazel-toolchain/blob/dp-srb-now/toolchain/internal/llvm_distributions.bzl#L52

Sorbet 需要 LLVM 8.0 来构建(因为我们正在使用 C++ 语言和标准库的一些最新部分),因此我们下载 LLVM 以获得我们开发的工具链。

可以在http://releases.llvm.org/看到,LLVM 不再发布 CentOS 构建,因此,我希望您在 ubuntu docker 容器中构建它比使用自定义版本的 llvm 更容易。

或者,您可以尝试传递 --crosstool_top=@bazel_tools//tools/cpp:toolchain --host_crosstool_top=@bazel_tools//tools/cpp:toolchain 来强制我们的构建使用您的本地 C++ 工具链,而不是我们尝试下载的工具链。请注意,如果您的工具链不够新,它可能无法编译 Sorbet。我们也没有在 LLVM8 以外的任何其他工具链上测试性能,并且我们在过去使用 GCC 编译时已经看到了显着的回归。

关于c++ - 如何在 Centos 7 上构建 Sorbet(缺少 llvm 工具链),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384896/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com