静态库和动态库
静态库
将库打包到产品---》生成可执行文件
动态库
运行时才加载到可执行文件
静态库:可执行程序大,部署难度容易,升级难度大
动态库:可执行程序小,部署难度难,升级难度小
库文件的生成
静态库
- 生成目标文件
- 把目标文件打包成静态库 ar crsv libalgo.a a.o b.o c.o
- 把静态库移动到/usr/lib目录下
- 链接时,需要加上静态库的名字 gcc main.c -0 main -lalgo
动态库
- 生成目标文件(需要加上 -fpic) gcc -c add.c sub.c mul.c div.c -fpic
- 把目标文件打包成静态库 gcc -shared add.o sub.o mul.o div.o -o libalgo.so
- 将动态库移动到/usr/lib目录下
- 链接时加上-lalgo