生成.a静态库并使用

参考:https://www.jb51.net/article/225428.htm

    1. 什么是静态库

我们通常需要把一些公用函数制作成函数库,供其它程序使用,函数库分为静态库.a和动态库.so两种。

静态库在程序编译时会被链接到目标代码中,程序运行时不再需要该静态库。

动态库在程序编译时并不会被链接到目标代码中,而是在程序运行时才被载入。这样我们可以通过更改动态库,动态的改变程序的某些功能。

Linux下使用ar工具,将目标文件压缩到一起,并且对其进行编号和索引,以便于查找和检索。

  1. 生成.a静态库

将 hello.c hello.h 生成一个 .a:

  1. 先将.c编译成 .o文件

无论静态库还是动态库都是由.o文件创建的。因此,我么必须将源代码hello.c通过gcc先编译成.o文件,在Linux系统终端下使用命令

gcc –c hello.c

2)用.o生成.a

静态库文件名的命令规范是以lib为前缀,紧接着是静态库名,扩展名为.a,例如我们将创建的静态库名为hello,则静态库文件名就是libhello.a。在Linux系统下创建静态库需要使用ar命令,在终端输入以下命令:

ar -crv libmyhello.a hello.o

  1. 使用.a静态库,三种方法
  2. gcc -o hello main.c -L. –lmyhello
  3. gcc main.c libmyhello.a -o hello
  4. gcc -o hello main.o libmyhello.a

验证,删除.a库之后可执行文件还能正常运行即可!

Logo

更多推荐