gcc下生成静态及动态链接库
利用下面几个程序来研究一下gcc下生成静态及动态链接库的步骤:
test.h文件:
test.c文件
main.c文件
gcc下生成静态链接库:
1. 生成test.o目标文件:
2.使用ar将test.o打包成libtest.a静态库:
3.生成libtest.a静态库后,可以使用ar t参数查看libtest.a文件中包含哪些文件:
4. 编译main.c,并使用libtest.a静态库,链接时-l参数后不加空格指定所需链接的库,这里库名是libtest.a,但是只需要给出-ltest即可,ld会以libtest作为库的实际名字(例如-lm参数,实际表示链接libm库,也就是数学库):
.
5.运行app_static:
gcc下生成动态链接库:
1.生成test.o目标文件(此处需要添加-fPIC参数,该参数用于生成位置无关代码已共生成动态库使用):
2.使用-shared参数生成动态库:
3.编译main.c,使用libmyshare.so动态库:
.
4.运行./app_share: