静态库的制作和使用
Posted kevinkala
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态库的制作和使用相关的知识,希望对你有一定的参考价值。
静态库的制作和使用
-
命名规则:libtest.a(加粗的地方是格式不可以更改)
- lib
- xxx -库的名字(自己取)
- .a
-
制作步骤
-
源代码:.c/.cpp
-
将.c文件生成.o
- gcc a.c b.c -c
- gcc a.c b.c -c
-
将.o打包
- ar rcs 静态库名字 原材料
- ar rcs libtest.a a.o b.o
- ar archive(将目标文件打包为静态链接库)
-
-
示例
- 创建三个文件 include文件放置头文件等 lib文件放置静态链接库 src文件放置源代码
- 在src文件下创建四个.c代码(vi -O add.c div.c mul.c sub.c)
- 在include文件下创建head.h
- 在src文件下将.c生成.o (gcc *.c -c -I ../include/)
- 在src文件下将.o文件打包成静态链接库(生成之后可以用nm命令查看静态库)
- 在生成的静态链接库复制到lib文件下
- 补充vim技巧
gcc -I
(小写的i)寻找头文件的目录- vi -O 是垂直分屏,-o是水平分屏;
qall
是同时关闭所有的,wall
是同时写入所有的,ctrl + w w(按两次w)可以在不同的窗口切换;
在非输入情况下,按下两次yy可以复制当前行,按下p可以粘贴到光标当前行。
- 创建三个文件 include文件放置头文件等 lib文件放置静态链接库 src文件放置源代码
-
库的使用
gcc main.c -I ./include/ -L ./lib/ -lmycasl -o app
-I
:指定库的路径-l
:指定库的名字,去掉lib和.a
-
示例
- 创建主函数将之前封装好的函数调用起来
gcc main.c -I ./include/ -L ./lib/ -lmycasl -o app
app可以根据需要取名字
若生成的可执行文件可执行证明静态库制作完毕
- 创建主函数将之前封装好的函数调用起来
总结
- 程序编译一般需经预处理、编译、汇编和链接几个步骤。静态库特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。
- 静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系
以上是关于静态库的制作和使用的主要内容,如果未能解决你的问题,请参考以下文章