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

转载 2015年07月09日 16:22:54

库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 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

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

相关文章推荐

Linux系统中添加库文件路径的方法

库文件在链接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用...

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

库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用...
  • lxmky
  • lxmky
  • 2011年09月21日 15:19
  • 452

工作中常用到的linux命令二 c++系统环境配置 动态库文件路径的加载

大家都知道,c++程序执行完成以后会生成二进制的可执行文件,该可执行文件可以部署到开发机上,一些服务就可以搭建起来了,但是在搭建的过程中,会出现很多小问题,这里就持续介绍一些常见的小问题    1....

Linux系统的头文件和库文件搜索路径

Linux操作系统的头文件和库文件搜索路径 Include的header文件,动态链接库,系统定义,总共有下列来源指定gcc去那里找。 当初在编译时指定的(在~gcc/gcc/collect2.c...

Linux系统的头文件和库文件搜索路径

Include的header文件,连结数据库,系统定义,总共有下列来源指定gcc去那找。当初在编译时指定的(在~gcc/gcc/collect2.c:locatelib()写在specs内的后来用-D...

Linux系统文件路径映射到windows资源管理器(NFS网络文件系统)

1 概念 NFS是网络文件系统(NetworkFile System)的简称,是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统。 NFS由SUN公司开发,目前已成为文件服务的...
  • zoboy
  • zoboy
  • 2015年11月19日 11:53
  • 652

Linux系统中程序库文件简介

Linux系统中程序库文件简介 简介 库文件一般就是编译好的二进制文件,用于在链接阶段同目标代码一起生成可执行文件,或者运行可执行文件的时候被加载,以便调用库文件中的某段代码。它与可执行文件相同之处是...

Windows与Linux系统下的库文件介绍

什么是库   库文件是一些预先编译好的函数的集合,那些函数都是按照可再使用的原则编写的。它们通常由一组互相关联的用来完成某项常见工作的函数构成,从本质上来说库是一种可执行代码的二进制形式,...

Linux系统基础开发技术1:构建Linux 库文件

Author:gnuhpc  WebSite:blog.csdn.net/gnuhpc 实验环境:Ubuntu Linux 10.04 32bit 1.库文件简介 库文件是一个...

Windows和Linux/Unix系统中文件路径使用总结

一、Microsoft  Windows     Windows系统中以反斜线’\‘表示文件路径,而在编程语言中反斜线'\'通常为转义字符。所以在Windows环境下的程序中,如涉及到文件路径一般需要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux系统中如何添加自己的库文件路径
举报原因:
原因补充:

(最多只允许输入30个字)