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
到此问题解决
分享到:
相关推荐
这时,可以通过 export QT_DEBUG_PLUGINS=1 命令来启用调试模式,查看缺少的动态库信息,然后复制该动态库到应用程序目录下,建立软链接。 为了避免每次运行前设置 LD_LIBRARY_PATH 环境变量,可以编写一个启动脚本...
1. 使用 `LD_DEBUG=libs` 环境变量来追踪库的加载路径,找出问题所在: ``` [root@bogon usr/local/bin]# LD_DEBUG=libs memcached –v ``` 2. 查看输出,找到 libevent-1.3b.so.1 所在的路径。如果系统没有正确地...
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_...
- 使用`LD_DEBUG`环境变量可以帮助我们了解memcached在加载时尝试查找共享库的具体路径。 ```bash LD_DEBUG=libs /usr/local/memcached/bin/memcached -v ``` - 从输出结果可以看到memcached在尝试查找`...
ACE_DEBUG ((LM_DEBUG, "Hello, ACE!\n")); return 0; } ``` 编译并运行: ```bash g++ -o hello_ace hello_ace.cpp -lACE ./hello_ace ``` 如果一切正常,你应该能看到"Hello, ACE!"的输出。 通过以上...
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`,将...
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命令"(Game Master Command)是用于管理游戏世界的工具,通常由游戏管理员或开发者使用。这些命令允许他们执行特殊操作,例如调整玩家属性、给予物品、创建活动等。在"仙梦奇缘"这款游戏中...
详细记录了vxworks的shell命令,对于初学vxworks的是极好的资料
- 进入解压后的目录,并执行`./configure`命令,这里可以选择debug和release模式,同时还需要安装`libqt3-headers`和`libqt3-mt-dev`: ```bash sudo apt-get install libqt3-headers libqt3-mt-dev cd qt-x11-...
例如,在csh或bash中,可以设置UMEM_DEBUG为default,UMEM_LOGGING为transaction,并指定LD_PRELOAD为libumem.so.1,然后运行目标程序。一旦程序运行,可以通过gcore命令生成核心转储文件。接下来,使用mdb调试工具...
3. **运行make命令**进行编译。 #### 四、运行与测试 - **运行指令**: - `LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib test.mp4`:使用指定的视频文件进行测试。 - `LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./...
这些命令设置了 `TSLIB_ROOT` 来指定TSLIB的安装位置,更新了 `PKG_CONFIG_PATH` 以便pkg-config能找到TSLIB的配置信息,同时更新了 `LD_LIBRARY_PATH` 使得链接器能在运行时找到TSLIB的库文件。 在解决这些问题后...
ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello World!"))); return 0; } ``` 2. **编译测试文件**:使用以下命令编译`main.cpp`。 ```bash g++ -lACE -o test main.cpp ``` 3. **运行测试程序**:执行编译后的...
./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 ...
- 使用 `LD_DEBUG=libs ./memcached -v` 来查看详细的动态链接信息,找出问题所在。 - 如果是路径问题,可以通过创建软链接或修改环境变量 `LD_LIBRARY_PATH` 来指向正确的库文件位置。 8. **创建软链接**: ...