linux 下动态库和静态库的生成和调用

1、 静态链接库:

适用命令gcc  ar

准备你的库文件  假设为  src1.c  src2.c  (如果有头文件,会自动调用)

gcc -c src1.c sr2.c -o src.o

 ar -rsv libsrc.a src.o

       编写调用函数  假设为  main.c

       gcc -o test main.c -L./ -lsrc 

(-L说明当前路径,此处为./ 表示当前文件夹,

-l 表示要调用的静态库的名称,此处为libsrc<关键字lib忽略>)

另: ar -t libsrc.a可以查看一个静态库包含了哪些obj文件

2、 动态链接库:

gcc -o libsrc.so -shared -fPIC src1.c src12.c

编写调用函数  例如  main.c

调用:

gcc -o test main.c -L. -lsrc

(-L. 表示在当前目录寻找so文件,注:L后有个点

-lsrc  linux命名规则,会自动添加lib和.so变成libsrc.so来调用)

查看:

ldd test   (发现找不到libsrc.so文件)

rm libsrc.so /usr/lib (需要su命令获取root权限)

./test 即可运行

原文地址:https://www.cnblogs.com/codingtao/p/6097805.html