linux - 在 Linux 上使用 bazel 构建 tensorflow r1.12 后 libtensorflow.so 和标头的位置
问题描述
在使用 cmake 构建早期版本的 tensorflow 遇到很多麻烦之后,我决定试一试 bazel,因为它应该能够创建一个共享库。根据官方推荐,我下载并构建了 bazel 0.15 然后使用
bazel build //tensorflow:libtensorflow.so
希望能够建立一个共享库。将近两个小时后,bazel 声称它能够构建 libtensorflow.so,但是,我在任何地方都找不到它。特别奇怪的是,整个目录只有大约 650MB 大。早些时候,我使用 cmake 构建了 tensorflow r1.10,它生成了一个 libtensorflow.so(由于其他原因,它在我的测试项目中不起作用),仅此一项就超过 800 MB;整个 cmake 目录的大小超过 11GB。
此外,我的测试项目(实际上可以在 Windows 下使用早期版本的 tensorflow)需要一些标头,例如
tensorflow/core/protobuf/meta_graph.pb.h
但似乎这个文件也没有生成,因为我找不到它。
有人可以告诉我获取共享库和必要标头的正确方法,或者在假定成功的 bazel 构建后我在哪里找到它们。
干杯
解决方案
好的,所以我现在发现命令 find 不在符号链接中查找,因此我能够在其中一个符号链接目录中找到 libtensorflow.so (尽管它的大小要小得多,大小约为 100MB)和一些标头由 bazel 在您的工作路径中创建,即 bazel-bin、bazel-out 等。
然而,我现在遇到了另一个问题。正如我上面提到的,有一些标题但不是全部。例如我找不到
google/protobuf/stubs/common.h
有谁知道我怎样才能获得上面提到的所有其他标题,Eigen,Tensor 等等。我需要指定什么 bazel 目标,否则我如何获得它们?
推荐阅读
- apache-spark - Spark ExecutorLostFailure- 原因:远程 RPC 客户端已解除关联。可能是由于容器超过阈值或网络问题
- c++ - 如何在 C++ 中使布尔变量返回 0 或 1 而不是 true 或 False?
- wordpress - 'login_redirect' v 'woocommerce_login_redirect'
- spring-boot - 在 Spring Boot WS Web 服务的响应头中删除 Accept
- angular - 当在 docker 文件中运行“npm run test”得到没有捕获的浏览器时,打开
- regex - 使用 grep 提取单引号之间的路径
- xml - Power BI: How do I check if a record is a date value and split a column based on that value?
- flutter - 如何在 Flutter 中压缩 PDF?
- r - 如何使用 R 拆分数据集,以使列中值的总和在子集中大致相同?
- python - 如何对多嵌套字典中的值进行排序并在python中选择前n个值?