1.概念和区别
静态库 :(1)libxxx.a ,程序在编译时,将库编译 进可执行程序中!
(2)优点:程序的运行环境中不需要外部的库函数!
(3)缺点:可执行程序略大
动态库(共享库):(1)libxxx.so,程序在运行时,将库加载到可执行程序中!
(2)优点:可执行程序小!
(3)缺点:程序的运行环境中必须提供相应的库。
2.静态库的制作和使用。
静态库的生成(也就是 . a文件的生成),一般分为三个步骤:
(1)用xxx.c文件 生成 xxx.o文件
gcc -c -o sub.o sub.c
(2)用 xxx.o文件生成 libxxx.a文件
ar -cr libsub.a sub.o // 生成libsub.a静态库文件
(3)编译主程序,链接libsub.a静态库
gcc main.c -o main -L. -lsub // 连接库
./main
3.动态库的制作与使用。
(1)用xxx.c文件生成xxx.o文件
gcc -c -o add.o add.c
(2)用 xxx.o文件生成libxxx.so文件
gcc -shared -fpic -o libadd.so add.o
(3)编译主程序并链接动态库文件
gcc -o main main.c -L. ladd
(4)将libadd.so文件复制到系统库目录 /usr/lib
cp libadd.so /usr/lib
./main
以上就是在Linux中静态库和动态库的制作和使用方法,亲测有效哦!
当然方法不止一种,动态库还有其他的使用方法!注意:在main.c程序中,需要调用静态库 和动态库文件中的函数!
--领卓教育