在此之前,先看下程序编译成可执行程序的过程,
1、静态库的制作过程
命名规则:libxxx.a
其中,
lib:前缀(固定)
xxx:库的名字,自己起
.a:后缀(固定)
制作:
- gcc获得.o文件
命令:$gcc -c xx.c xx.c xx.c -I xx/xx - 将.o文件打包,使用ar工具(archive)
命令:$ar rcs libxxx.a xxx.o xxx.o
注:
-I(大i):指定头文件所在的路径
-o:指定生成的目标文件的名字
-L:指定库文件所在的文件路径
-c:只编译,生成.o文件,通常称为目标文件
-l(小L):指定库的名字
2、动态库的制作过程
命名规则:libxxx.so
其中,
lib:前缀(固定)
xxx:库的名字,自己起
.so:后缀(固定),在Linux下是一个可执行文件
制作:
- gcc获得.o文件
命令:$gcc -c -fpic xx.c xx.c xx.c -I xx/xx - gcc得到动态库
命令:$gcc -shared xxx.o xxx.o -o libxxx.so