当前位置:首页 > 百科

动态库

动态库又称动态链接来自库英文为DLL,是Dynamic 360百科Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执段好儿促开眼转德正行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和临老商或座查农医者资源。多个应用程序可者商根等同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。W决毫元搞indows下动态库为.dll后缀,在linux下为.so后护背化镇罗缀。

  • 中文名称 动态库
  • 外文名称 Dynamic Link Library 
  • 别称 动态链接库
  • 英文缩写 DLL

存放内容

  系统运行过程中所产生的所有信息

  原始数据:包括用户输入的信息、推理的中间结果和推理过程的纪录

作用

  动态库中由各种事实、命夫洲手守沿此企许口基题和关系组成的状态,既是推理机选用知识的依据,也是解释机制获得推理路径的来源。

编译

  生成动态连接库,假设名称为libtest.so

  gcc x.cy.cz.c-fPIC-shared-olibtest来自.so

  将main.c和动态连接库进行顾周继识连接生成可执行文件

  gcc 360百科main.c-L.-ltest-omain

  输出LD_LIBRARY_PATH环境变量,以便动态库装载器能够找到需要的动态库

  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

  测试是否动态连接,如我几治矛久未虽果列出libtest.so,那么应该是连接正常了

  ldd main

后缀名含义

  -fPIC:表示编译为位置独立的代码,不用此选项的话移案升游家刑球斯编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要但据单名,而不能达到真正代码段共享的目的。

  -L.:表示要连接的库在当前目录中

  -ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称

  LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。

  当然如果有root权限的话,可以修改/etc/ld.so.conf文件,然后调用 /sbin/ldconfig来达到约地传各河树同样的目的,不过如果没有r告大值玉沿长压侵青oot权限,那么只能采用输出LD_LIBRARY_PATH的方法了。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章