【问题标题】:How can I create and use my own static library in C?如何在 C 中创建和使用自己的静态库?
【发布时间】:2015-11-02 17:56:47
【问题描述】:

我想创建自己的库并让它使用与标准 C 库相同的语法

#include<mylib.h>

所以它看起来像#include 和 C 中包含的一些库。

我可以将库设为静态而不是链接,这样我就可以在 GCC 中编译它而无需额外的参数,就好像我正在使用另一个库,如 stdio.h 或 string.h?

【问题讨论】:

标签: c libraries


【解决方案1】:

这看起来很简单。

  • 开发库(根据需要创建尽可能多的源文件)。

  • 使用 CMAKE 之类的工具(我强烈推荐)将源文件构建到共享库 (.so) 中。

  • 将该库复制到您的库路径(即/usr/lib

  • 稍后,您所要做的就是导入您的库: (i) 在源代码中使用#include&lt;mylib.h&gt;; (ii) 在 GCC 编译器中构建(也使用 CMAKE)或使用标志 (-lmylib) 时:gcc -lmylib myfiles.c -o myoutput。

【讨论】:

    【解决方案2】:

    除了#include "mylib.h" 之外,在使用库时还需要在编译器(更具体地说是链接器)中添加-lmylib 命令行。我假设您通过ar 命令创建的库档案被命名为libmylib.a

    【讨论】:

      【解决方案3】:

      通常,我们不会“手动”编写构建指令,但我们依赖于生成构建链的工具。其中有很多,最了解的可能是 autotools 和 cmake(在 Linux 下)。

      我建议您查看 cmake 示例和/或文档以构建您的代码。

      静态库和动态库之间存在很多差异,如果您真的想像“标准”库(如 libxml2、openssl 等)一样使用它,还需要以某种方式打包您的库

      关于它有很多话要说,但你应该先看看“如何构建”你的库,然后看看如何使它易于使用,恕我直言。

      【讨论】:

        猜你喜欢
        • 2013-09-26
        • 2020-01-03
        • 1970-01-01
        • 2013-10-09
        • 2017-12-19
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 1970-01-01
        相关资源
        最近更新 更多