perl:符号查找错误:libXrender.so.1:未定义的符号:_XGetRequest

时间:2015-12-14 15:18:58

标签: c++ linux perl

我在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     存在正确的X11库路径。

我发现libX11.so.6包含该符号。

我的问题是:

虽然X11库路径正确放置在libXrender的RPATH中,为什么它找不到sybmol?

同样,当我使用正确的x11库路径设置LD_LIBRARY_PATH env变量时,测试正在通过。我也尝试使用-rdynamic选项进行动态加载,并在链接阶段保持正确的库路径排序,但没有用。

0 个答案:

没有答案