据我所知,使用bazel我只能生成libtensorflow_cc.so
和libtensorflow_framework.so
。
我需要生成与位置无关的静态库(-fPIC
),因为我稍后会将它们链接到我自己的动态库。
我发现this answer建议使用项目中包含的Makefile。
我已成功使用它来替换{{1}},但我该怎么做才能替换libtensorflow_cc.so
?
答案 0 :(得分:3)
不是一个真正的答案,但评论的时间太长了。
我设法做了类似于你在Windows上使用Bazel提到的内容。特别是,我想制作一个带有一个或两个标题(功能有限)的包装器DLL,我可以轻松地移动它。我会写一些我做过的事情的摘要;根据我们的需求量身定制,但也许你找到了有用的东西。
--config=monolithic
传递给bazel build
命令(除了您需要的任何其他选项)。这将避免模块化库,从而消除对libtensorflow_framework.so
的依赖(参见
tools/bazel.rc)。BUILD
文件)。因此,为了编译这个最终的虚拟程序,必须事先编译所有的TensorFlow。bazel-bin
目录下的文件,名称以.params
结尾 - 在那里我找到了用于编译它的所有静态库的路径。这就是它,我想。我有一个丑陋的Bash脚本我在MSYS2上运行,它为我做了一切。通常在每个新版本中我都需要调整一两件事(configure
脚本中的一些选项,我需要复制的一些额外标题等),但我最终会让它工作。虽然这很麻烦,所以我不一定说你应该使用相同的方法(但如果你愿意,可以随意询问有关任何步骤的细节)。
答案 1 :(得分:0)