创建与使用库:静态、共享与动态
作者:norkai laboratory 【相关文章:linux 文件权限】 【扩展阅读:使用PYTHON创建XML文档】来自:linux知识宝库 【扩展信息:给VSFTP建立虚拟用户】 c语言中有一些函数不需要进行编译,有一些函数也可以在多个文章中使用。一般来说, 这些函数都会执行一些标准任务,如数据库输入 /输出操作或屏幕控制等。可以事先对这些 函数进行编译,然后将它们放置在一些特殊的目标代码文件中,这些目标代码文件就称为库。 库文件中的函数可以通过连接程序与应用程序进行连接。这样就不必在每次开发程序时都对 这些通用的函数进行编译了。 不同类型的应用程序将会使用不同的函数库。例如:libdbm库中组包含了对数据库文件 进行访问的dbm函数,需要对数据库进行操作的程序就会与该库进行连接。数学应用程序将 使用数学库libm,x-windows应用程序将使用xlib库,libx11。另外,所有的程序都将使用 标准的c函数库。libc,该库中包含了内存管理或输入输出操作的基本函数,这些库都 存放在/usr/lib这些系统公用的目录中,系统中的任何用户都可以利用这些库。当然用户也 可以建立自己专用的库函数,供自己或其它指定的人员使用。 库可以有三种使用的形式:静态、共享与动态。静态库的代码在编译时就已连接到开发 人员开发的应用程序中,而共享库只是在程序开始运行时才载入,在编译时,只是简单地指 定需要使用的库函数。动态库则是共享库的另一种变化形式。动态库也是在程序运行时载入, 但与共享库不同的是,使用的库函数不是在程序运行开始,而是在程序中的语句需要使用该 函数时才载入。动态库可以在程序运行期间释放动态库所占用的内存,腾出空间供其它程序 使用。由于共享库与动态库并没有在程序中包括库函数的内容,只是包含了对库函数的引用, 因此代码的规模比较小。 已经开发的大多数库都采取共享库的方式。elf格式的可执行文件使得共享库能够比较容 易地实现,当然使用旧的a.out模式也可以实现库的共享。linux系统中目前可执行文件的标准 格式为elf格式。 gnu库的使用必须遵守library gnu public license(lgpl许可协议)。该协议与gnu许可协 议略有不同,开发人员可以免费使用gnu库进行软件开发,但必须保证向用户提供所用的库函 数的源代码。 ... 下一页