问题描述
当使用带有Bazel的自定义工具链(Android arm64-v8a目标)构建TensorFlow时,即使Android构建不是必需的,最终共享库也依赖于libpthread.so
。使用同名的虚拟库可以很好地运行该库。
由于我已经删除了TensorFlow存储库中所有lpthread/pthread
出现的情况,因此我认为存在一些传播链接标志的外部依赖项。
是否可以通过某种方式跟踪哪个目标为Bazel添加了特定的链接标志?不幸的是,-s
标志仅显示最终的链接命令。
解决方法
bazel query是用于此目的的工具。此命令将为您提供所有在其linkopts中带有-lpthread
(或-pthread
或-Wl,-lpthread
之类的替代拼写)的传递依赖项:
bazel query 'attr(linkopts,"pthread",deps(//my:target))'