bazel:链接到缺乏' lib'字首

时间:2018-05-29 17:04:45

标签: bazel

我有一个外部库label

ace.so

如何使用bazel链接到该库?我直接调用gcc / g ++时知道a colon can be used,但我不确定如何从bazel获得相同的行为。

  • 我尝试将cc_library( name='ace', hdrs=glob(['path/to/ace/**']), srcs=['path/to/ace.so'], ) (也-l:ace.so)添加到-Wl,-l:ace.so,但似乎bazel没有将其传递给gcc 将其添加到用于链接器参数的copts文件。
  • 我与@结合使用nocopts='-lace.so'。没有运气。
  • 我也尝试了linkopts=['-l:ace.so']而不是cc_import,但这也没有用。

我已经阅读了Importing precompiled C++ libraries doc,但我没有看到任何关于使用带有任意前缀的libs或没有前缀的内容。

作为临时修复,我添加了指向cc_library的符号链接libace.so并更改了ace.so行以匹配。虽然这有效,但我更倾向于说服bazel按原样使用lib。

1 个答案:

答案 0 :(得分:1)

看看如何收集和传递有关库的信息,我担心这一点(假设“普通”动态库以liblibfoo.so作为前缀可以作为{{1}给出目前相当硬编码。同样不适用于它被认为是“版本化”(匹配模式-lfoo)动态库,它将作为"^.+\\.so(\\.\\d+)+$"传递。但不幸的是,并没有真正帮助你,因为你仍然需要采用类似的解决方法,并创建一个版本化的小说来启动。也就是说,只要给出你的solib文件名,符号链接听起来像一个相当理智的解决方法。

相关问题