8、静态函数库设计

函数库分类
函数库按照链接方式可分为
  1、静态链接库
  2、动态链接库

函数库 -存放位置

Linux应用程序使用的主要函数库均存放于/lib, /usr/lib目录下,其中采用*.so.*方式命名的是动态函数库,而以*.a方式命令的是
静态函数库。

静态链接库-特点
1、程序所要用到的库函数代码在链接时全部被copy到程序中。
2、导致的问题:如果有多个进程在内存中同时运行,并且使用了相同的库函数,那么就会有多份拷贝,这就是对空间的浪费。

使用静态库-编译选项

1.Linux下进行链接时 默认是链接动态库
2.如果需要使用静态库,需要使用编译选项

    -static

  例: gcc -static test.c -o test

制作静态库

1. gcc –c mylib.c –o mylib.o
2. ar cqs libmylib.a mylib.o
3. 将制作好的libmylib.a 复制到/usr/lib

使用静态库-编译选项

-lname:GCC在链接时,默认只会链接C函数库,而对于其他的函数库,则需要使用-l选项来显示地指明需要链接。
例:gcc test.c –lmylib -o test

猜你喜欢

转载自www.cnblogs.com/earwen/p/10421195.html