我想在基于bazel的c++项目之一中链接外部静态库。我需要“whole-archive”选项来链接类似gcc或g++ build的库:

g++ main.cc -Wl,--whole-archive -lhttp -Wl,--no-whole-archive

有人可以建议bazel中“--whole-archive”的替代内容是什么吗?

最佳答案

可悲的是,alwayslink不适用于预编译的库,仅适用于由Bazel编译和链接的cc_library。有一个未记录的hack(我想我只是在这里提到它来记录它),并且它是将.a文件重命名为.lo文件。然后,Bazel将其链接为整个存档。

请注意,这是一种黑客行为,它将在没有警告的情况下停止工作。我们已经计划了针对此用例的cc_import规则的一些变体,以便将预编译的二进制文件导入到工作区中,并可以在其上设置整个存档。它还不存在。

关于c++ - 替换为bazel中的 “` --whole-archive`”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44674163/

10-11 19:35