[英]perl: symbol lookup error: libXrender.so.1: undefined symbol: _XGetRequest
我在RHL5平台上安装Term :: Readline :: Gnu cpan包。 构建正确完成但在运行make test时我在t / callback.t中遇到以下错误:
perl:符号查找错误:perl / 5.20.2 / ext / lib / libXrender.so.1:未定义符号:_XGetRequest
我做了一些初步检查以找出根本原因。
# ldd -d -r libXrender.so.1 => no undefined symbol
linux-gate.so.1 => (0xffffe000)
libX11.so.6 => [proper X11 library path]
libxcb.so.1 => [proper Xcb library path]
libXau.so.6 => [proper Xau library path]
libXdmcp.so.6 => [proper Xdmcp library path]
libdl.so.2 => /lib/libdl.so.2 (0xf7dc70000
libc.so.6 => /lib/libc.so.6 (0xf7c6b000)
/lib/ld-linux.so.2 (0x00824000)
库路径不是/ usr / lib之类的标准路径
# readelf -a libXrender.so.1 | grep "_XGetRequest"
00009e2c 00003107 R_386_JUMP_SLOT 00000000 _XGetRequest
49: 00000000 0 FUNC GLOBAL DEFAULT UND _XGetRequest
113: 00000000 0 FUNC GLOBAL DEFAULT UND _XGetRequest
readelf -a libXrender.so.1 | grep RPATH
readelf -a libXrender.so.1 | grep RPATH
Proper X11库路径存在。
我发现libX11.so.6包含该符号。
我的问题是:
虽然X11库路径正确放置在libXrender的RPATH中,为什么它找不到sybmol?
同样,当我使用正确的x11库路径设置LD_LIBRARY_PATH env变量时,测试正在通过。 我也尝试使用-rdynamic选项进行动态加载,并在链接阶段保持正确的库路径排序,但没有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.