静态库
打包命令:ar -r libbase.a add.o sub.o
查看归档文件内容:ar -t libbase.a
从归档文件中分解文件:ar -x libbase.a -o [add.o]
使用静态库:gcc main.o -L../lib -lbase -o ../bin/app
动态库
生成动态库命令:
$ gcc -c -fPIC add.c sub.c
$ gcc -shared add.o sub.o ../lib/libbase.so
使用动态库:
$ gcc -c main.c -o main.o
$ gcc main.o -L../lib -lbase -o ../bin/app
静态库和共享库的区别
- 静态库被链接后直接嵌入可执行文件中,被几个文件链接就有几份复制
- 动态库在运行时被链接,磁盘上只保留一份
- 静态库被修改,需要重新编译链接该库的所有程序。
-static
选项指定链接静态库