什么是库
本质上来说,库是一种执行的二进制形式,可以被操作系统载内存执行。
区别
静态库在程序编译时会被链接到目标代码中,程序运行时将不需要该静态库,因此体积较大。
动态库在程序编译时并不会被链接到目标代码中,而是在程序运行时才被载入,因此在程序运行时需要动态库的存在,因此代码体积较小。
如何创建静态库
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 命令