<ins id='17g3n'></ins>

    <code id='17g3n'><strong id='17g3n'></strong></code>
    <i id='17g3n'></i>

    <span id='17g3n'></span>
    1. <tr id='17g3n'><strong id='17g3n'></strong><small id='17g3n'></small><button id='17g3n'></button><li id='17g3n'><noscript id='17g3n'><big id='17g3n'></big><dt id='17g3n'></dt></noscript></li></tr><ol id='17g3n'><table id='17g3n'><blockquote id='17g3n'><tbody id='17g3n'></tbody></blockquote></table></ol><u id='17g3n'></u><kbd id='17g3n'><kbd id='17g3n'></kbd></kbd>
      <dl id='17g3n'></dl>
      <acronym id='17g3n'><em id='17g3n'></em><td id='17g3n'><div id='17g3n'></div></td></acronym><address id='17g3n'><big id='17g3n'><big id='17g3n'></big><legend id='17g3n'></legend></big></address>
        <fieldset id='17g3n'></fieldset>

        <i id='17g3n'><div id='17g3n'><ins id='17g3n'></ins></div></i>

          Linux系统中添加自己的库文件路径

          • 时间:
          • 浏览:5
          • 来源:124软件资讯网

            库文件在毗连(静态库和共享库)和运行(仅限于使用共享库的法式)时被使用  ,其搜索路径是在系统中举行设置的  。一样平常 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径 ,以是使用这两个目录中的库时不需要举行设置搜索路径即可直接使用  。

            对于处于默认库搜索路径之外的库 ,需要将库的位置添加到库的搜索路径之中  。设置库文件的搜索路径有下列两种方式  ,可任选其一使用:

            在情况变量 LD_LIBRARY_PATH 中指明库的搜索路径 。

            在 /etc/ld.so.conf 文件中添加库的搜索路径  。

            将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择

            添加要领也极其简朴 ,将库文件的绝对路径直接写进去就OK了 ,一行一个  。例如:

            /usr/X11R6/lib

            /usr/local/lib

            /opt/lib

            需要注重的是:第二种搜索路径的设置方式对于法式毗连时的库(包罗共享库和静态库)的定位已经足够了 ,可是对于使用了共享库的法式的执行照旧不够的 。这是由于为了加速法式执行时对共享库的定位速率  ,制止使用搜索路径查找共享库的低效率  ,以是是直接读取库列表文件 /etc/ld.so.cache 从中举行搜索的  。/etc/ld.so.cache 是一个非文本的数据文件 ,不能直接编辑  ,它是凭据 /etc/ld.so.conf 中设置的搜索路径由 /sbin/ldconfig 下令将这些搜索路径下的共享库文件集中在一起而天生的(ldconfig 下令要以 root 权限执行)  。因此  ,为了保证法式执行时对库的定位  ,在 /etc/ld.so.conf 中举行了库搜索路径的设置之后  ,还必须要运行 /sbin/ldconfig 下令更新 /etc/ld.so.cache 文件之后才可以 。ldconfig ,简朴的说  ,它的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache 以供使用  。因此当安装完一些库文件  ,(例如刚安装好glib)  ,或者修改ld.so.conf增添新的库路径后 ,需要运行一下 /sbin/ldconfig使所有的库文件都被缓存到ld.so.cache中  ,若是没做  ,纵然库文件明显就在/usr/lib下的  ,也是不会被使用的  ,效果编译历程中抱错  ,缺少xxx库  ,去检察发现明显就在那放着  ,搞的想痛骂computer蠢猪一个 。

            在法式毗连时  ,对于库文件(静态库和共享库)的搜索路径 ,除了上面的设置方式之外  ,还可以通过 -L 参数显式指定  。由于用 -L 设置的路径将被优先搜索  ,以是在毗连的时间通常都市以这种方式直接指定要毗连的库的路径  。

            前面已经说明过了  ,库搜索路径的设置有两种方式:在情况变量 LD_LIBRARY_PATH 中设置以及在 /etc/ld.so.conf 文件中设置  。其中  ,第二种设置方式需要 root 权限  ,以改变 /etc/ld.so.conf 文件并执行 /sbin/ldconfig 下令  。而且  ,当系统重新启动后  ,所有的基于 GTK2 的法式在运行时都将使用新安装的 GTK+ 库  。不幸的是  ,由于 GTK+ 版本的改变  ,这有时会给应用法式带来兼容性的问题 ,造成某些法式运行不正常 。为了制止泛起上面的这些情形  ,在 GTK+ 及其依赖库的安装历程中对于库的搜索路径的设置将接纳第一种方式举行  。这种设置方式不需要 root 权限  ,设置也简朴:

            $ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH

            可以用下面的下令检察 LD_LIBRAY_PATH 的设置内容:

            $ echo $LD_LIBRARY_PATH

            至此  ,库的两种设置就完成了