【发布时间】:2017-03-28 17:04:23
【问题描述】:
我正在做一个使用 Tensorflow 的共享库。现在我将它作为子项目放置在 Tensorflow 的源代码树中,并带有以下 BUILD 文件:
cc_binary(
name = "recognizer.so",
srcs = glob(["recognizer.cpp"]),
linkshared = 1,
deps = [
"//tensorflow:сore"
],
)
所有东西都链接在一起,但我最终得到了一个大小约为 94 兆字节且不依赖于 libtensorflow_cc.so 的共享库。实际上甚至没有构建 libtensorflow_cc.so 这样的二进制文件。
有一个目标 //tensorflow:libtensorflow_cc.so 。它被声明为 cc_binary 这意味着(根据 bazel)我不能依赖它。而且这个目标实际上是非公开的,这意味着我可以构建它但不能从另一个子项目中引用它。至少有 bazel。
那么,有没有什么办法可以做这么简单的事情呢?
【问题讨论】:
-
您使用的是什么操作系统?
--cpu标志值(如果有)传递给 Bazel? -
我在 Linux 上。没有 --cpu 标志被传递给 Bazel
-
所以您想将自定义代码构建为依赖于 libtensorflow_cc.so 的共享库?
-
mhlopko,正如你在德语中所说的 - genau )
标签: c++ tensorflow shared-libraries bazel