静态链接库

时间:2013-06-12 11:58:38

标签: linker makefile static-linking dynamic-linking

我有一个库说libX.a我正在创建另一个库myLib2.a我想静态链接libX.a和myLib2.a 问题是,当我使用myLib2.a它投诉要求libX.a,但我希望libX.a成为myLib2.a的一部分,以便我可以直接使用myLib2.a

我已经尝试生成myLib2.a并且成功地这样做但是当我尝试使用它时我得到错误。 能否请您建议这是可能的吗?如果可能的话,我们如何使用makefile实现这一目标。

谢谢和问候,

罗希特夏尔

2 个答案:

答案 0 :(得分:1)

  

我想链接这两个库来制作一个库。

您不希望链接这两个库;你想结合他们。食谱是here

答案 1 :(得分:0)

libX.a提取对象文件(使用ar -x),然后将其添加到myLib2.a(使用ar -r)。

在makefile中:

CONTENTS := $(filter %.o,$(shell ar -t libX.a))

libMy2.a: libX.a
    ar -x libX.a
    ar -r $@ $(CONTENTS)
    rm $(CONTENTS)