在Linux上使用bazel构建tensorflow r1.12之后libtensorflow.so和标头的位置

时间:2019-04-05 11:09:20

标签: linux tensorflow bazel

在使用cmake构建早期版本的tensorflow时遇到了很多麻烦之后,我决定尝试一下bazel,因为据说它可以创建共享库。根据官方建议,我下载并构建了bazel 0.15,然后使用

bazel build //tensorflow:libtensorflow.so

希望能够建立一个共享库。在将近两个小时之后,bazel声称它能够构建libtensorflow.so,但是,我在任何地方都找不到它。由于整个目录只有大约650MB,这尤其奇怪。之前我使用cmake构建了tensorflow r1.10,该cmake生成了libtensorflow.so(由于其他原因在我的测试项目中不起作用),仅此一个就超过800 MB。整个cmake目录的大小超过11GB。

此外,我的测试项目(实际上可以在Windows中使用tensorflow的早期版本运行)需要一些标头,例如

tensorflow/core/protobuf/meta_graph.pb.h

但是似乎也没有生成此文件,因为我找不到它。

有人可以告诉我获取共享库和必要标头的正确方法,或者在成功构建bazel之后我在哪里找到它们。

欢呼

1 个答案:

答案 0 :(得分:0)

好吧,所以我现在发现命令find不在符号链接中,因此我能够找到libtensorflow.so(尽管它很小,大小约为100MB),并且其中一个包含一些标头由bazel在您的工作路径中创建的符号链接目录,即bazel-bin,bazel-out等。

但是,我现在仍然遇到另一个问题。正如我上面提到的,有一些标头,但不是全部。例如,我找不到

google/protobuf/stubs/common.h

有人知道我如何获得所有其余的标题,例如上面提到的标题,Eigen,Tensor等等。我需要指定什么目标目标,否则如何获得目标目标?