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

我在RHL5平台上安装Term :: Readline :: Gnu cpan包。 构build正确完成,但在运行testing时,我正面临在t / callback.t中的以下错误:

perl:symbol lookup error:perl / 5.20.2 / ext / lib / libXrender.so.1:undefined symbol:_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) 

库path不是像/ usr / lib这样的标准path

 # 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正确的X11库path存在。

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

我的问题是:

尽pipeX11库path正确放置在libXrender的RPATH中,但为什么找不到sybmol呢?

再次,当我设置适当的x11库path的LD_LIBRARY_PATH envvariables时,testing正在传递。 我也尝试使用-rdynamic选项进行dynamic加载,并在链接阶段维护正确的库pathsorting,但没有用处。