软件库通常是先前已编译并组织成单个二进制库文件的子程序集。集中的每个成员称为库元素或模块。链接程序搜索库文件,在生成可执行二进制程序时加载用户程序所引用的目标模块。有关详细信息,请参见 ld(1) 和 Solaris《链接程序和库指南》。
软件库有两种基本类型:
静态库。该库中的模块在执行之前即被绑定到执行文件中。静态库通常以 libname.a 命名。.a 后缀指的是归档。
动态库。该库中的模块可在运行时绑定到可执行程序中。动态库通常以 libname.so 命名。.so 后缀指的是共享对象。
既有静态 (.a) 版本又有动态 (.so) 版本的典型系统库有:
Fortran 95 库:libfsu、libfui、libfai、libfai2、libfsumai、libfprodai、libfminlai、libfmaxlai、libminvai, libmaxvai、libifai、libf77compat
C 库:libc
使用库有两个优点:
对于程序调用的库例程,不需要有源代码。
只加载所需的模块。
库文件为程序共享常用子例程提供了一条简单途径。只需在链接程序时给出库名便可,那些解析程序中引用的库模块将被链接并合并到可执行文件中。