如何在C中创建和使用自己的静态库?

时间:2015-11-02 17:56:48

标签: c libraries

我想创建自己的库,并使用与

中的标准C库相同的语法
#include<mylib.h>

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

我可以将库设置为静态而不是链接,以便我可以在没有其他参数的情况下在GCC中编译它,就好像我使用的是stdio.h或string.h这样的另一个库吗?

3 个答案:

答案 0 :(得分:3)

这看起来很简单。

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

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

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

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