参考文章:《【Linux】静态库和动态库的创建与使用--示例讲解》
一、库的种类
Linux 下的库有两种:静态库 和 动态库(共享库);
静态库:程序在编译链接的时候把库的代码链接到可执行文件中, .a 为后缀
动态库:程序在运行的时候才去链接动态库(共享库)的代码,可以多个程序共享使用库的代码,通常以.so为后缀;
二、静态库和动态库的优缺点
静态库:把库的代码载入可执行文件中,因此体积较大,当静态库中的内容更新后需要重新编译;由于编译器或链接器知道实际进入程序的代码,可以进行优化,运行速度会快一些;
动态库:只在程序运行时载入内存,因此体积较小,共享库如果发生变化不需要重新编译;运行速度相对慢一些;
三、静态库的创建与使用
1.创建动态库流程:
(1)将代码文件编译成目标文件.o
gcc test.c -o test.o
(2)通过ar工具将目标文件打包成.a静态库文件
ar -crv libMytest.a test.o
ar 是一个专门控制静态库的命令
-c:创建静态库,不管库是否存在
-r 把目录文件合并成一个静态库,如果静态库文件已经存在则更新。
-v :使用详细模式
-q 向静态库中添加目录文件
-t 查看静态库中有哪些目标文件
-d 从静态库中删除目标文件-x 把静态库展开为目标文件
2.使用静态库
共有两种方法,分别如下:
(1)直接调用
把静态库当作目标文件一样
gcc 1.c libMytest.a -o test
(2)通过gcc -L参数来指定库的路径
gcc 1.c -L./ -lMytest -o test
标签:文件,gcc,静态,创建,库中,Linux,test From: https://www.cnblogs.com/FBsharl/p/17570749.html-L:表示要连接的库所在目录
-l:指定库的名称(不需要前面的lib和扩展名.a只留下中间部分)