zoukankan      html  css  js  c++  java
  • linux下,一些关于动态库的问题:

     

     

    程序运行是加载动态库的几种方法:

    第一种,通过ldconfig命令
        ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令它,ldconfig命令通常在系统启动时运行,而当一个用户安装我新的动态库时,就需要手工运行这个命令。ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
        这里面涉及到的关键内容有命令:ldconfig,配置文件目录:/etc/ld.so.conf.d,配置文件在/etc/ld.so.conf内容由用户编辑,缓冲文件/etc/ld.so.cache。

    第二种,通过LD_LIBRARY_PATH环境变量
    可以通过在.bashrc或者.cshrc中配置该环境变量,LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开.

    第三种,通过编译选项-Wl, -rpath指定动态搜索的路径
    -Wl选项告诉编译器将后面的参数传递给链接器。

     

    当我们要想加入一个动态库时,可以在 /etc/ld.so.conf.d/ 目录下建一个*.conf文件(为什么在这里面建呢,因为吧,/etc/ld.so.conf 文件中已经包含了这一路径,你可以打开看看哦, include /etc/ld.so.conf.d/*.conf)。当然也在其它目录下建立*.conf文件,不过建完以后记得在 /etc/ld.so.conf 文件中加入目录。

    还可以在变量LD_LIBRARY_PATH 中,加入动态库目录,我一般都会在 ~/.bashrc 中写入。

     

     

     

     

     

     

     

     

     

     

     

     

    参考文献:

    http://blog.csdn.net/apn172/article/details/8868968

    http://www.linuxidc.com/Linux/2015-07/120192.htm

  • 相关阅读:
    mtd-utils 工具的使用
    nand flash坏块管理OOB,BBT,ECC
    Ubifs Support
    linux 关闭显示器命令
    玩转shell之符号篇
    shell中的cut命令
    【详解】如何编写Linux下Nand_Flash驱动_v1.2
    Nand 的几个名词:oob,bbt,ecc
    mtd-utils 及 ubi-utils 交叉编译
    UBIFS分区制作及UBIFS烧写和启动
  • 原文地址:https://www.cnblogs.com/yinheyi/p/5908431.html
Copyright © 2011-2022 走看看