使用bazel构建库并对其进行硬编码依赖

时间:2019-03-01 20:02:17

标签: gcc bazel dynamic-linking

是否可以将依赖关系硬编码到使用bazel构建的库中。原因是,如果我构建somelib,则可以在工作空间中使用它,但是一旦我将lib复制到其他地方,我就会失去所有依赖关系(Bazel缓存)。当我要将库部署到系统中或进行安装时,Witch产生了问题。

some_folder
|
thirdparty
|_WORKSPACE
|_somelib
|    |_src
|         |_ a.c
|         |_ BUILD
|    |_include
|         |_a.h
|_include
   |_ b.h

1 个答案:

答案 0 :(得分:1)

听起来您想构建一个完全静态链接的库。这可以在Bazel中完成,方法是使用cc_binary属性设置为linkshared的{​​{1}}构建库。根据{{​​3}},您还必须命名您的图书馆True或类似名称。

启用静态库的是libfoo.so的{​​{1}}属性行为。缺省为cc_binary时,所有可以静态链接到二进制文件的依赖项都将是。请注意,linkstaticTrue上的行为不同,请参见documentation

因此,基本上,您需要在BUILD文件中添加类似的内容

linkstatic

祝你好运!