表1: 程序pos输出结果和动态库的对应关系

创建各个动态库,并放置在相应的目录中。测试环境就准备好了。执行程序pos,并在该命令行中设置环境变量LD_LIBRARY_PATH。

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

./

#

根据程序pos的输出结果可知,最先搜索的是编译目标代码时指定的动态库搜索路径。然后我们把动态库./libpos.so删除了,再运行上述命令试试。

# rm libpos.so

rm: remove regular file `libpos.so'? y

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

/root/test/env/lib

#

根据程序pos的输出结果可知,第2个动态库搜索的路径是环境变量LD_LIBRARY_PATH指定的。我们再把/root/test/env/lib/libpos.so删除,运行上述命令。

# rm /root/test/env/lib/libpos.so

rm: remove regular file `/root/test/env/lib/libpos.so'? y

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

/root/test/conf/lib

#

第3个动态库的搜索路径是配置文件/etc/ld.so.conf指定的路径。删除动态库/root/test/conf/lib/libpos.so后再运行上述命令。

# rm /root/test/conf/lib/libpos.so

rm: remove regular file `/root/test/conf/lib/libpos.so'? y

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

/lib

#

第4个动态库的搜索路径是默认搜索路径/lib。我们再删除动态库/lib/libpos.so,运行上述命令。

# rm /lib/libpos.so

rm: remove regular file `/lib/libpos.so'? y

# LD_LIBRARY_PATH=/root/test/env/lib ./pos

/usr/lib

#

最后的动态库搜索路径是默认搜索路径/usr/lib。

综合以上结果可知,动态库的搜索路径搜索的先后顺序是:

1.编译目标代码时指定的动态库搜索路径;

2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;

3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;

4.默认的动态库搜索路径/lib;

5.默认的动态库搜索路径/usr/lib。

在上述1、2、3指定动态库搜索路径时,都可指定多个动态库搜索路径,其搜索的先后顺序是按指定路径的先后顺序搜索的。对此本文不再举例说明,有兴趣的读者可以参照本文的方法验证。

linux 动态库系统目录,Linux操作系统:指定动态库(.so)搜索路径(4)相关推荐

  1. java动态分区分配算法,操作系统_动态分区分配算法课程设计_java版

    <操作系统_动态分区分配算法课程设计_java版>由会员分享,可在线阅读,更多相关<操作系统_动态分区分配算法课程设计_java版(13页珍藏版)>请在人人文库网上搜索. 1. ...

  2. linux 动态库系统目录,Linux共享库.so文件的命名和动态链接

    Linux中的.so文件 是动态链接的产物 共享库理解为提供各种功能函数的集合,对外提供标准的接口 Linux中命名系统中共享库的规则 主版本号:不同的版本号之间不兼容 次版本号:增量升级 向后兼容 ...

  3. Linux下动态共享库加载时的搜索路径详解

    对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似"error while loading shared libraries"这样的错误,这是典型的因为需要的动态库不在动态链接器 ...

  4. linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...

    背景 在GCC中已经指定链接库,然而编译时却提示动态库函数未定义! 测试出现的错误提示如下: [GMPY@13:48 tmp]$gcc -o test -L. -lmylib test.c /tmp/ ...

  5. linux如何确定共享库路径,摘录Linux下动态共享库加载时的搜索路径详解

    对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似"error while loading shared libraries"这样的错误,这是典型的因为需要的动态库不在动态链接器 ...

  6. alsa的动态库安装在哪里_linux 给运行程序指定动态库路径

    1. 连接和运行时库文件搜索路径到设置 库文件在连接(静态库和共享 库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr/li ...

  7. 【Linux篇】第十一篇——动静态库(动静态库的介绍+动静态库的打包与使用)

    动静态库的基本原理 认识动静态库 动静态库的概念 静态库的打包与使用 静态库的打包 静态库的使用 动态库的打包与使用 动态库的打包 动态库的使用 动静态库的基本原理 动静态库的本质就是可执行程序的&q ...

  8. Spi cp2515 linux,基于MCP2515的Linux CAN总线驱动程序设计

    图3 MCP2515硬件连接图 5.MCP2515 Socket CAN驱动实现 FS2416平台使用Linux2.6.39的内核,内核中为MCP2515提供了Socket CAN驱动程序,我们只需为 ...

  9. [转]Linux C语言头文件搜索路径

    转自:http://hi.baidu.com/ilonng/blog/item/a0232435fbcfb90490ef390d.html/cmtid/68d4ab7bbb8026fb0ad187be ...

最新文章

  1. Python:Item Pipeline
  2. Java 日志体系详解
  3. PMSM的FOC 矢量控制算法调试流程,新手上手流程
  4. Git与SVN区别 \git学习
  5. php mysql模糊查询数组,php – 使用数组的MySQL查询
  6. 3层vni vxlan_VLAN和VXLAN,两者有何区别?VXLAN运用场景有哪些?
  7. javac 编译与 JIT 编译
  8. 面试题—Redis篇
  9. linux创建目录目录文件,Linux创建目录和文件管理教程
  10. mysql删除原则_MySQL入门-11:数据的增、删、改
  11. MySQL二十四:索引
  12. html div 右侧,span在div里居左和居右布局
  13. [转]Linux启动界面切换:图形界面-字符界面
  14. python从入门到实践答案第十章_Python编程:从入门到实践——【作业】——第十章(文件和异常)...
  15. 获取客户端用户真实 IP 地址
  16. 64k超高清3d程序 Warez出品的精品动画 近25万倍的压缩的精品
  17. MODIS数据下载及MRT批处理方法
  18. java 多线程 原子_Java多线程:原子量
  19. 电脑网络问题——IPv4无Internet访问权限
  20. Android沉浸式全面讲解(一)

热门文章

  1. JS图片灯箱(lightBox)效果基本原理和demo
  2. 智能拼图游戏 问题 求解
  3. 笑到爆,产品经理VS大堂经理
  4. Qt官方示例-速度仪表盘
  5. mysql binlog 过滤表_mysql日志恢复指定表【从binlog日志过滤恢复指定数据表】
  6. C# 数据操作系列 - 16 SqlSugar 完结篇
  7. cscope ctags
  8. UE4 VR手柄移动转盘
  9. iStat Menus mac中文
  10. 五子棋——人机博弈(Java实现)