`
dsbjc
  • 浏览: 15297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

命令LD_DEBUG

 
阅读更多

LD_DEBUG 是 glibc 中的 loader 设置的一个环境变量,可以方便的看到 loader 的加载过程。glibc是gnu 发布的libc ,即c运行库 。glibc是linux系统 中最底层的api ,几乎其它任何运行库都会依赖于glibc。

# LD_DEBUG=help ls
 Valid options for the LD_DEBUG environment variable are:

  libs        display library search paths
  reloc       display relocation processing
  files       display progress for input file
  symbols     display symbol table processing
  bindings    display information about symbol binding
  versions    display version dependencies
  all         all previous options combined
  statistics  display relocation statistics
  unused      determined unused DSOs
  help        display this help message and exit

To direct the debugging output into a file instead of standard output
a filename can be specified using the LD_DEBUG_OUTPUT environment variable.

 

以memcached安装过程中遇到的问题为例:

命令: /usr/local/bin/memcached -p 11211 -m 64m -vv
错误:/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

使用LD_DEBUG显示库寻找信息

LD_DEBUG=libs /usr/local/bin/memcached -vv
     15759:    find library=libevent-2.0.so.5 [0]; searching
     15759:     search cache=/etc/ld.so.cache
     15759:     search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64           (system search path)
     15759:      trying file=/lib64/tls/x86_64/libevent-2.0.so.5
     15759:      trying file=/lib64/tls/libevent-2.0.so.5
     15759:      trying file=/lib64/x86_64/libevent-2.0.so.5
     15759:      trying file=/lib64/libevent-2.0.so.5
     15759:      trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5
     15759:      trying file=/usr/lib64/tls/libevent-2.0.so.5
     15759:      trying file=/usr/lib64/x86_64/libevent-2.0.so.5
     15759:      trying file=/usr/lib64/libevent-2.0.so.5

最后一行可以看出,memcached去/usr/lib64目录下寻找libevent-2.0.so.5,先定位libevent-2.0.so.5实际目录

命令:whereis libevent-2.0.so.5

结果:libevent-2.0.so: /usr/lib/libevent-2.0.so.5

这时候需要将做一个软连接

命令:ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

 

如果要删除软连接

命令: rm -rf filename

 

到此问题解决

 

分享到:
评论

相关推荐

    Qt程序在linux下发布

    这时,可以通过 export QT_DEBUG_PLUGINS=1 命令来启用调试模式,查看缺少的动态库信息,然后复制该动态库到应用程序目录下,建立软链接。 为了避免每次运行前设置 LD_LIBRARY_PATH 环境变量,可以编写一个启动脚本...

    memcached 安装教程

    1. 使用 `LD_DEBUG=libs` 环境变量来追踪库的加载路径,找出问题所在: ``` [root@bogon usr/local/bin]# LD_DEBUG=libs memcached –v ``` 2. 查看输出,找到 libevent-1.3b.so.1 所在的路径。如果系统没有正确地...

    Linux下ACE编译的总结

    ACE_DEBUG((LM_DEBUG, ACE_TEXT("hello world ACE !\n"))); return 0; } ``` 创建 hello.mpc 文件,内容为: ```makefile project(hello):aceexe { exename=hello Source_Files { hello.cpp } Header_...

    安装memcached出现异常

    - 使用`LD_DEBUG`环境变量可以帮助我们了解memcached在加载时尝试查找共享库的具体路径。 ```bash LD_DEBUG=libs /usr/local/memcached/bin/memcached -v ``` - 从输出结果可以看到memcached在尝试查找`...

    Linux下ACE工具包安装详细过程

    ACE_DEBUG ((LM_DEBUG, "Hello, ACE!\n")); return 0; } ``` 编译并运行: ```bash g++ -o hello_ace hello_ace.cpp -lACE ./hello_ace ``` 如果一切正常,你应该能看到"Hello, ACE!"的输出。 通过以上...

    Linux环境下Memcache的安装

    2. 设置LD_DEBUG环境变量,例如`LD_DEBUG=libs /usr/local/bin/memcached –v`,查看调试信息以确定库的搜索路径。 3. 创建一个软链接,如`ln -s /usr/local/lib64/libevent-2.0.so.5 /usr/lib/libevent-2.0.so`,将...

    linux下memcached安装以及启动

    2. 执行命令 `LD_DEBUG=help ./memcached -v` 和 `LD_DEBUG=libs ./memcached -v` 3. 如果提示找不到 libevent.so,可以通过软链接的方式解决这个问题: ```bash ln -s /usr/local/libevent-1.4/lib/libevent-1.4....

    GM命令+所有物品代码_仙梦奇缘GM代码物品大全_仙梦奇缘代码_

    在游戏开发和运营中,"GM命令"(Game Master Command)是用于管理游戏世界的工具,通常由游戏管理员或开发者使用。这些命令允许他们执行特殊操作,例如调整玩家属性、给予物品、创建活动等。在"仙梦奇缘"这款游戏中...

    vxworks shell命令大全

    详细记录了vxworks的shell命令,对于初学vxworks的是极好的资料

    ubuntu QT安装

    - 进入解压后的目录,并执行`./configure`命令,这里可以选择debug和release模式,同时还需要安装`libqt3-headers`和`libqt3-mt-dev`: ```bash sudo apt-get install libqt3-headers libqt3-mt-dev cd qt-x11-...

    SOLARIS libumem介绍

    例如,在csh或bash中,可以设置UMEM_DEBUG为default,UMEM_LOGGING为transaction,并指定LD_PRELOAD为libumem.so.1,然后运行目标程序。一旦程序运行,可以通过gcore命令生成核心转储文件。接下来,使用mdb调试工具...

    YOLO通用目标检测.pdf

    3. **运行make命令**进行编译。 #### 四、运行与测试 - **运行指令**: - `LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib test.mp4`:使用指定的视频文件进行测试。 - `LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./...

    编译qte4.6.3出现的问题解决方法

    这些命令设置了 `TSLIB_ROOT` 来指定TSLIB的安装位置,更新了 `PKG_CONFIG_PATH` 以便pkg-config能找到TSLIB的配置信息,同时更新了 `LD_LIBRARY_PATH` 使得链接器能在运行时找到TSLIB的库文件。 在解决这些问题后...

    ACE分布式框架安装指南

    ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello World!"))); return 0; } ``` 2. **编译测试文件**:使用以下命令编译`main.cpp`。 ```bash g++ -lACE -o test main.cpp ``` 3. **运行测试程序**:执行编译后的...

    QT在unix上的安装说明

    ./configure -debug -qt-gif -platform solaris-g++ -thread -qt-sql-oci -I/export/home/oracle/home/rdbms/public -I/export/home/oracle/home/rdbms/demo -L/export/home/oracle/home/lib -lclntsh -lwtc8 ...

    Solaris下安装memcache.doc

    - 使用 `LD_DEBUG=libs ./memcached -v` 来查看详细的动态链接信息,找出问题所在。 - 如果是路径问题,可以通过创建软链接或修改环境变量 `LD_LIBRARY_PATH` 来指向正确的库文件位置。 8. **创建软链接**: ...

Global site tag (gtag.js) - Google Analytics