静态库和动态库

什么是库

本质上来说,库是一种执行的二进制形式,可以被操作系统载内存执行。

区别

静态库在程序编译时会被链接到目标代码中,程序运行时将不需要该静态库,因此体积较大。
动态库在程序编译时并不会被链接到目标代码中,而是在程序运行时才被载入,因此在程序运行时需要动态库的存在,因此代码体积较小。

如何创建静态库

1.生成目标文件 hello.o
2.创建静态库   #ar crs  libmyhello.a hello.o       静态库格式  lib**.a
3.使用静态库   #gcc -o hello main.c -L. -lmyhello  

如何创建动态库

1.生成目标文件(**位置独立的目标文件**)  
  #gcc -fPIC -c hello.c
2.创建动态库 #gcc -shared -libmyhello.so hello.o
3.使用动态库  #gcc -o hello main.c -L. -lmyhello
4.设置运行时库路径
  方法1: export LD_LIBRARY_PATH="动态库文件所在目录"
  方法2: 修改配置文件     etc/ld.so.conf.d/  目录下新建一个  mylib.conf 文件,并加入动态库文件的存放路径,再执行 ldconfig 命令
原文地址:https://www.cnblogs.com/fengyang66/p/6014297.html