如何在C ++ / Eclipse中创建包含的独立库

时间:2009-04-25 14:47:18

标签: c++ eclipse tinyxml

我已经获得了一些C ++代码来使用TinyXML解析器。但是,要做到这一点,我必须使用常规源代码包含TinyXML的源代码。我想将TinyXML作为一个单独的库包含在内。我正在使用Eclipse和Cygwin C ++编译器。这样做的好方法是什么?

2 个答案:

答案 0 :(得分:4)

我假设您要将库与您自己项目的源代码分开...但是当库不在同一文件夹中时您不知道如何构建。


假设您的库已经预编译了* .lib和* .h文件:

  1. 将库源代码移动到单独的目录
  2. 菜单栏“项目”
  3. 菜单“属性”将打开所有项目属性的对话框,左侧会有一个列表。
  4. 列表项“C / C ++ Build”将更改GUI并显示gcc编译器/链接器/汇编器的所有选项(我从不进行汇编...所以我从不对汇编器做任何事情)。 [1]
  5. GCC C编译器 - >目录:
  6. 绿色加图标[2] - >指定* .h文件的路径
  7. 您的编译器现在应该感到高兴(但是链接失败,因为链接器不知道每个函数的实际定义是什么)。
  8. GCC C Linker - >图书馆:
  9. 图书馆搜索路径(-L) - >绿色加图标 - >指定* .lib文件的路径
  10. 库(-l) - >绿色加图标 - >指定您正在使用的每个库的名称
  11. 您的链接器现在应该很开心,您的代码应该编译
  12. [脚注 - 1] GUI C / C ++构建窗格是gcc命令行编译器/链接器的包装器......它只是使它更容易使用,因为它可以直观地显示所有内容。

    [脚注 - 2]'+'图标将告诉编译器库* .h包含文件的位置。编译器需要* .h文件才能知道库编译之前的原型函数。


    假设您有实际(未编译)* .c和* .h:

    1. 除步骤7外,执行上述相同步骤。
    2. 在步骤7.您需要确保Eclipse的“托管make”可以看到库的* .c文件。如果它没有看到源代码,那么你需要指定源的位置,以便编译它。

答案 1 :(得分:2)

这基本上很容易。您编译库的源代码,并使用 ar(1)构建库。是的,出乎意料的是,图书馆只是一个档案馆; UNIX很酷。

然后,您可以在构建最终代码时将代码包含为静态库。

我没有那么多使用Eclipse,所以我无法告诉你IDE中的确切过程,但我相信你需要的是建立一个单独的项目来构建它。

现在,如果你想要的是构建一个DLL,那么你需要使用一些特殊的标志。有一个很好的页面here