zoukankan      html  css  js  c++  java
  • ldconfig

    ldconfig所做的仅与程序运行时相关,与链接没有关系,因此链接时仍应加 -L选项。 

    ldconfig是动态链接库的管理命令。该命令主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库,进而创建/跟新ld.so所需的链接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。

    ldconfig

    configure dynamic linker run-time bindings

    /lib/ld-linux.so.x: execution time linker/loader

    /etc/ld.so.conf: File containint a list of colon,space,tab,newline or comma separated directories in which to search for libraries.

    /etc/ld.so.cache: File containing a ordered bit of libraries found in the directories specified in /etc/ld.so.conf. This file is not in human readable formats, and is not intended to be edited.

    libx.so.version: shared libraries.

    引述自: www.360doc.com/content/10/1230/21/1378815_82757146.shtml

    说明:

    -v

    显示扫面过的目录和搜索到的动态链接库,以及其锁创建的链接的文件名。

    -n

    仅扫描命令行指定的目录,不扫扫描默认目录(/lib, /usr/lib),也不扫描配置文件 /etc/ld.so.conf所列的目录。

    -N

    指示ldconfig不重建缓存文件(/etc/ld.so.cache)。若未用-X选项,ldconfig将更新文件链接。

    -X

    指示ldconfig不更新文件的链接。若未用-N选项,则缓存文件正常更新。

    -f CONF

    指定动态链接库的配置文件为CONF,系统默认为 /etc/ld.so.conf

    -C CACHE

    指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表。

    -r ROOT

    改变应用程序的根目录为ROOT(通过chroot函数实现)。选择此项时,系统默认的配置文件/etc/ld.so.conf,实际对应的是 ROOT/etc/ld.so.conf。例如用 -r /usr/zzz时,打开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件。

    -I

    通常ldconfig搜索动态链接库时将自动建立动态链接库的链接。选择此项时,将进入手动设置模式。

    -p  或  --print-cache

    指示ldconfig打印出当前缓存文件所保存的所有共享库的名字。可以用来查询系统中有没有某个动态链接库。

    -c FORMAT 或 --format=FORMAT

    指定缓存文件所使用的格式:ld(老格式)、new(新格式)、compat(兼容格式,默认格式)。

    -V

    打印版本信息。

    附:

    1、ldconfig dirname

    当用户在某个目录下创建或拷贝一个动态链接库,若想使其被系统共享,可以执行“ldconfig dirname”。此命令的功能在于让ldconfig将指定目录下的动态链接库被系统共享起来,意即:在缓存文件/etc/ld.so.cache中追加指定目录下的共享库。需要说明的是,如果此目录不在/lib, /usr/lib及/etc/ld.so.conf文件所列的目录里面,则再度运行ldconfig时,此目录下的动态链接库可能不会再被系统共享(这种操作方法虽然有效,但是效果是暂时的,供程序测试使用,一旦再度运行ldconfig,则缓存文件内容可能改变,所需的动态链接库可能不被系统共享)。

    附:

    编译时引用动态链接库的几种方式。

    1、所用的动态链接库在系统目录下(/lib, /usr/lib),使用 -l选项。

    gcc -ltest -o hello hello.c

    当使用选项-l引用动态链接库时,库名须使用其缩写形式,本例为libtest.so。-l选项和参数之间不能有空格,否则会报错。

    2、当所用的动态链接库在系统目录(/lib, /usr/lib)以外的目录时,须用-L来指定动态链接库所在的目录,同时用-l选项指定缩写的动态链接库名。

    gcc -Lpath -ltest -o hello hello.c

    3、直接引用所需的动态链接库。

    gcc -o hello hello.c path/libtest.so

    请查看:

    http://www.cnblogs.com/openix/p/3521166.html

  • 相关阅读:
    前端模板网站
    python之进程,线程,协程
    Docker学习之dockerhub
    Docker学习04
    Docker学习03
    http://mrdede.com/(织梦先生)
    爬取图片
    requests实战之药监总局数据爬取
    requests实战之豆瓣电影爬取
    requests实战之网页采集器
  • 原文地址:https://www.cnblogs.com/openix/p/2431791.html
Copyright © 2011-2022 走看看