技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

LDD命令--可执行文件依赖的库出现错误时

http://littlepig3056.blog.163.com/blog/static/180758353201212751814134/

ldd  查看可执行文件依赖的库,结果会列出依赖的库名及依赖库所在路径

ldd命令执行时,从环境变量LD_LIBRARY_PATH查找可执行文件链接的库。
所以要让可执行文件链接到正确的库有两种方式:
 
1. 编写setenv.sh脚本设置环境变量LD_LIBRARY_PATH
     采用这种方式,要求每次启动新会话后,都必须执行source setenv.sh命令行,使得设置对于当前会话生效。
 
2. 修改用户根目录的.bash_profile文件
export LD_LIBRARY_PATH=/home/zk/lib:$ORACLE_HOME
 
这样每次会话被打开后,会自动设置.bash_profile中的环境变量。不用每次手工执行source setenv.sh。但是,如果多个程序员使用同样的账号部署程序时,需要注意保持所有程序员依赖的库的版本的一致性。
 

ldd 查看可执行程序
wappp@ppcn-12-208:/work/stat/read/ucshuqisearch> ldd hello 
   linux-gate.so.1 =>  (0xb7719000) 
   liblog4c.so.3 => /usr/local/log4c/lib/liblog4c.so.3 (0xb76e8000) 
   libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb753e000) 
   libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7522000) 
   /lib/ld-linux.so.2 (0xb771a000)

如果系统里没有库,就会提示 xx.so.3 not found

posted on   codestyle  阅读(1550)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示