库是一组预先编译好的方法的结合。库有两种一种是静态库,另一种是共享库。静态库的后缀名为:libxxx.a,共享库的命名规则为:libxxx.so
一、静态库的生成
1.将add.c 和mul.c 等编译成.o文件
2.使用ar命令将编译好的.o文件生成静态库。
c 是创建库,r是将方法添加到库中,v显示过程
3.创建成功
4.使用libfoo.o静态库
二、共享库的生成
1.将add.c 和mul.c 等编译成.o文件
2. 使用命令将编译好的.o文件生成共享库。使用gcc -shared -fPIC -o libfoo.so add.o mul.o
3.使用共享库,将动态库libfoo.so放到/usr/lib下,系统会去默认的标准库目录下寻找 ,我们将其放入默认目录下。
4.使用共享库,当默认路径下有静态库和共享库时,默认使用共享库
三、共享库和静态库的区别
静态库在链接时,将静态库全部链接到程序中。动态库在运行时动态加载到程序中。在更新时,因为库里面的实现,已经包含在主程序里,当静态库实现改变时,main程序需要改变,而共享库没这个问题。