我正在尝试使用自定义的clang/llvm工具链编译tensorflow,并使用clang的本地libc++(而不是借用Gcc的stdlibc++)。
看起来bazel plain假设每个clang都将使用Gcc的库,因为我得到了这些错误:
但是尝试了很多次都没有成功,似乎没有什么区别。
然后我试图按照bazel教程创建一个自定义工具链。但这篇文章并没有多大帮助,因为他们其实是在编写一个交叉工具链,而我尝试做的是调整现有主机规则,一些我尝试调整其参数的方法被bazel似乎都撤销了。
现在我的github存储库已经到了这个地步:https://github.com/HFTrader/BazelCustomToolchain 然而它无法编译,我甚至无法弄清楚如何开始调试此消息。
我曾在bazel的谷歌讨论组上提出过这个问题,但他们将我重定向到了stackoverflow。目前我已经快要放弃了。
有人尝试过这个吗?还是说我正在开创先河?
谢谢。
看起来bazel plain假设每个clang都将使用Gcc的库,因为我得到了这些错误:
$ bazel build --cxxopt=-std=c++11 --cxxopt=-stdlib=libc++ tensorflow:libtensorflow.so
INFO: Found 1 target...
INFO: From Compiling
external/protobuf/src/google/protobuf/compiler/js/embed.cc [for host]:
external/protobuf/src/google/protobuf/compiler/js/embed.cc:37:12:
warning: unused variable 'output_file' [-Wunused-const-variable]
const char output_file[] = "well_known_types_embed.cc";
^
1 warning generated.
ERROR: /home/hbucher/.cache/bazel/_bazel_hbucher/ad427c7fddd5b68de5e1cfaa7cd8c8cc/external/com_googlesource_code_re2/BUILD:11:1: undeclared inclusion(s) in rule '@com_googlesource_code_re2//:re2':
this rule is missing dependency declarations for the following files included by 'external/com_googlesource_code_re2/re2/bitstate.cc':
'/home/hbucher/install/include/c++/v1/stddef.h'
'/home/hbucher/install/include/c++/v1/__config'
我尝试入侵bazel中的tools/cpp/CROSSTOOL,因为一些帖子建议添加该行
cxx_builtin_include_directory: "/home/hbucher/install/include/c++/v1"
但是尝试了很多次都没有成功,似乎没有什么区别。
然后我试图按照bazel教程创建一个自定义工具链。但这篇文章并没有多大帮助,因为他们其实是在编写一个交叉工具链,而我尝试做的是调整现有主机规则,一些我尝试调整其参数的方法被bazel似乎都撤销了。
现在我的github存储库已经到了这个地步:https://github.com/HFTrader/BazelCustomToolchain 然而它无法编译,我甚至无法弄清楚如何开始调试此消息。
$ bazel build --crosstool_top=@hbclang//:toolchain tensorflow:libtensorflow.so
.....................
ERROR: The crosstool_top you specified was resolved to
'@hbclang//:toolchain', which does not contain a CROSSTOOL file. You can
use a crosstool from the depot by specifying its label.
INFO: Elapsed time: 2.216s
我已将以下内容添加到我的tensorflow/WORKSPACE文件中:
new_local_repository(
name="hbclang",
path="/home/hbucher/BazelCustomToolchain",
build_file = "/home/hbucher/BazelCustomToolchain/BUILD",
)
我曾在bazel的谷歌讨论组上提出过这个问题,但他们将我重定向到了stackoverflow。目前我已经快要放弃了。
有人尝试过这个吗?还是说我正在开创先河?
谢谢。