2.静态库与共享库

静态库

打包命令: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选项指定链接静态库

猜你喜欢

转载自blog.csdn.net/u012086173/article/details/86431859