链接到Eclipse CDT中的静态库时重复的步骤

时间:2013-03-04 11:27:06

标签: c ubuntu static-libraries eclipse-cdt cross-compiling

我在Ubuntu v12.10上使用Eclipse CDT / CodeSourcery Lite交叉编译我的C项目。

在Eclipse CDT中,我有三个C项目:

  1. exeTop //使用libmiddle.a
  2. 中定义的函数的可执行文件
  3. libmiddle.a //使用libbottom.a
  4. 中定义的函数的静态库
  5. libbottom.a //没有的独立静态库 依赖于任何其他库
  6. 为了构建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吗?

1 个答案:

答案 0 :(得分:0)

你说“为了构建libmiddle.a,我必须链接到libbottom.a,这有意义,因为libmiddle.a依赖于libbottom.a。”我认为情况并非如此。事实上,libmiddle.a无法真正链接到libbottom.a,因为这不是静态库在Linux上的工作方式。静态库只是目标文件的“归档”,并且没有使它们依赖于其他静态库的功能。将静态依赖项填充到静态库本身也不典型。

有关详细信息,请参阅[UNIX] : Do I need to add all libraries in my project's makefile, that are used from a library, used in my project?