我在Ubuntu v12.10上使用Eclipse CDT / CodeSourcery Lite交叉编译我的C项目。
在Eclipse CDT中,我有三个C项目:
为了构建libmiddle.a,我必须将libbottom.a复制到libmiddle的项目文件夹中(参见说明here),这有意义,因为libmiddle.a依赖于libbottom.a。
然而,在构建exeTop时,我不仅要链接到libmiddle.a,还要链接到libbottom.a(libmiddle.a已经链接到了)。
Q1。为什么需要从exeTop链接到libbottom.a?
Q2。我可以使用任何编译器或链接器选项,以便我可以从exeTop链接到libmiddle.a吗?
答案 0 :(得分:0)
你说“为了构建libmiddle.a,我必须链接到libbottom.a,这有意义,因为libmiddle.a依赖于libbottom.a。”我认为情况并非如此。事实上,libmiddle.a无法真正链接到libbottom.a,因为这不是静态库在Linux上的工作方式。静态库只是目标文件的“归档”,并且没有使它们依赖于其他静态库的功能。将静态依赖项填充到静态库本身也不典型。