1.静态库:工程在调用静态库时,复制静态库,源代码加长,不节省程序空间。 后缀名.a
优点:编程后不需要再依赖库(以空间换时间)
创建静态库:gcc -c 源文件.c
ar [rcs/rcu] 静态库名 目标文件1 目标文件2
rc 静态库不存在,就创建该库文件
s 更新静态库
使用:gcc -o file -L. -lname (-L.在当前目录下)
ar -t libname.a 显示库中所有.o文件
-d libname.a name.o 在库中.o的目标文件删除(不报错)
-dv libname.a name.o 在库中.o的目标文件删除(显示删除
成功或错误信息)
-x 库名 name.o 文件名 从库中提取目标.o文件
2.动态库:工程建立映射关系,每次调用都需要去库中加载
后缀名 .so 优点:程序轻便,便于升级
动态库的创建:gcc -share -fPIC -o libname.so 源文件.c
gcc -fPIC -c 源文件.c
gcc -share name.o name.o libname.so
使用:gcc 源文件.c ./libname.so -o 可执行文件名