静态库制作

静态库的制作

1,什么是库?

(1)库文件是计算机上的一类文件, 可以简单的把库文件看成―种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。
(2)库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。
(3)库文件有两种.静态库和动态库(共享库),区别是:静态库在程序的链接阶段被复制到了程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。
(4)库的好处:1.代码保密2.方便部署和分发

静态库的制作

命名规则:
Linux:libxxx.a
lib :前缀(固定)
xxx:库的名字,自己起
.a:后缀(固定)
windows : libxxx.lib

静态库的制作:
gcc 获得.o 文件
将.o 文件打包,使用ar 工具(archive)
ar rcs libxXX.a xxx.o xxx.o
r —将文件插入备存文件中
c -建立备存文件
s 一索引

gcc main.c -o app -I ./include/ -l calc -L ./lib 
# -I 指定所需头文件目录 
# -l 指定所调用的静态库  
# -L 指定静态库位置

总结

1 在生成静态库文件出生成静态库

# 0 文件所在位置详情
root@ubuntu:/home/carey/Linux/lesson3/library# ls
app  include  lib  main.c  src
# app为生成的可执行文件  include里面包含head.h lib里面为静态库 src为静态库所需的.c文件

# 1 生成 .o 文件
root@ubuntu:/home/carey/Linux/lesson3/library/src# gcc -c add.c div.c mult.c sub.c -I ../include/
root@ubuntu:/home/carey/Linux/lesson3/library/src# ls
add.c  add.o  div.c  div.o  mult.c  mult.o  sub.c  sub.o

# 2 移到lib目录下 然后在main.c所在目录运行 生成appTest文件
root@ubuntu:/home/carey/Linux/lesson3/library/src# mv libcalc.a ../lib/

root@ubuntu:/home/carey/Linux/lesson3/library# gcc main.c -o appTest -I ./include -l calc -L lib

root@ubuntu:/home/carey/Linux/lesson3/library# ls
app  appTest  include  lib  main.c  src

Guess you like

Origin blog.csdn.net/qq_44861043/article/details/121263893
Recommended