库:库是软件开发追求的目标——代码重用的经典例子,他们把经常使用的编程例程集中到一起,C系统语言就是一个例子。库还提供了许多实用工具代码,例如用于网络编程的函数,图像处理函数,数据处理函数和系统调用。
库兼容性:库兼容性是指在库的多个修订或升级版本间保持稳定一致的变量、数据结构、公共函数接口和总体功能。
文件名.a(代表存档,archive)结尾的库都是静态库
文件名.so(大概代表共享目标文件,shared object)结尾的库都是共享库
编号约定:library_name.major_num.minor_num.patch_num
library_name 是libc.so
major_num 是2主发型号
minor_num 是0 次发型号
patch_num 是0补丁或升级号
libform_g.a :通常以_g结尾的库是调试库
libform_p.a:代码剖析库
常用库:
libGL.so <GL/gl.h> 实现到OpenGL API的接口
libGLU.so <GL/glu.h> 实现到OpenGL API的接口
liblmlib.so <lmlib.h> 实现一套图像处理例程,许多人认为它比作为X Window系统一部分的标准XPM(X pixmap)库要好
libc.so 实现标准C库不需要头文件
libcom_err.so <com_err.h> 常用出错例程的集合
libcrypt.so <crpt.h> 加密函数的集合
libdb.so <db.h> 创建和操作数据库的库
libdl.so <dlfcn.h> 让程序在运行时加载和使用库代码而无需再编译时链接库
libform.so <form.h> 实现字符模式应用程序的窗体处理能力
libgdbm.so <gdbm.h> GNU 数据库管理器,对libdb.so提供接口的改进版本
libglib.so <glib.h> Glib库,提供了大多数程序需要的大量基本工具函数,比如散列表和字符串操作例程
libgthread.so <glib.h> 实现对Glib的线程支持
libgtk.so <gtk/gtk.h> GIMP(GNU Image Manipulation Program) 下的X库,GIMP Tool Kit的基础库
libhistory.so <readline/readline.h> 实现GNU readline(libreadline)包中的命令行历史机制
libjpeg.so <jpeglib.h> 定义到JPEG库的接口,赋予应用程序使用JPEG 图像文件的能力
libm.so <math.h> 实现标准C数据库
libmenu.so <menu.h> 提供在字符模式屏幕上创建和使用菜单的例程
libncurses.so <ncurses.h> 使用ncurses 文本模式屏幕控制系统的应用程序的基础库
libnss.so <nss.h> 用于名字服务切换工具的功能,提供了名字数据库比如DNS德接口
libpanel.so <panel.h> 提供在字符模式屏幕上创建和使用面板的例程
libpbm.so <pbm.h> 可移植的位图(bitmap)库,实现了使用多种格式单色位图的接口
libpgm.so <pgm.h> 可移植的灰度图(graymap)库,实现了使用多种格式灰色位图的接口
libpng.so <png.h> 用于编码、解码和操作PNG(Portable Network Graphics,可移植的网络图形)格式图像文件的参考实现
libpnm.so <pnm.h> 可移植anymap库是使用多种位图格式,如PBM(monochrome bitmap,单色位图)、PPM(color pixmap,彩色像素图)和PGM(grayscale pixmap,灰度像素图)的基础库
libppm.so <ppm.h> 可移植的像素图库实现了使用多种格式彩色像素图的接口
libpthread.so <pthread.h> 实现POSIX 线程库,标准的LINUX多线程库
libreadline.so <readline/readline.h> gnu readline包的基础库,该软件包能够让应用软件存储,记忆并且编辑命令行。bash shell命令行的编辑特性就是其示例
libresolv.so <resolv.h> 提供使用因特网域名服务器和服务的接口
libslang.so <slang.h> 提供方便的脚本语言S-lang,用于嵌入其他应用程序
libvga.so <vga.h> Linux的底层VGA和SVGA图形库
libtiff.so <tiffio.h> 读写TIFF格式图像文件的库
libz.so <zlib.h> 通用压缩例程库