生成.a静态库并使用
参考:https://www.jb51.net/article/225428.htm
-
- 什么是静态库
我们通常需要把一些公用函数制作成函数库,供其它程序使用,函数库分为静态库.a和动态库.so两种。
静态库在程序编译时会被链接到目标代码中,程序运行时不再需要该静态库。
动态库在程序编译时并不会被链接到目标代码中,而是在程序运行时才被载入。这样我们可以通过更改动态库,动态的改变程序的某些功能。
Linux下使用ar工具,将目标文件压缩到一起,并且对其进行编号和索引,以便于查找和检索。
- 生成.a静态库
将 hello.c hello.h 生成一个 .a:
- 先将.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
- 使用.a静态库,三种方法
- gcc -o hello main.c -L. –lmyhello
- gcc main.c libmyhello.a -o hello
- gcc -o hello main.o libmyhello.a
验证,删除.a库之后可执行文件还能正常运行即可!