4

我已经使用 c++ 在 HP-UX 上构建了 xerces。它还构建了一些链接到 libxerces-c-3.1.sl 的可执行文件。在运行其中任何一个时,我收到符号未找到错误:

SHLIB_PATH=../lib ./DOMCount
/usr/lib/dld.sl: Unresolved symbol: _ZNK11xercesc_3_113XMLBigDecimal10getRawDataEv (data)  from /home/build/HP-UX/lib/libxerces-c-3.1.sl
[HP ARIES32]: Core file for 32-bit PA-RISC application
[HP ARIES32]:   /home/build/HP-UX/bin/DOMCount saved to /home/build/HP-UX/bin/core.DOMCount
Segmentation fault (core dumped)

我执行了 nm 命令,它将符号显示为未定义。但是我也可以在文本部分看到 xercesc_3_1::XMLBigDecimal::getRawData() 。

nm -pxAN libxerces-c-3.1.sl | c++filt | grep getRawData
../lib/libxerces-c-3.1.sl:0x002c2ac8 T  xercesc_3_1::XMLAbstractDoubleFloat::getRawData() const
../lib/libxerces-c-3.1.sl:0x002c5390 T  xercesc_3_1::XMLBigDecimal::getRawData() const
../lib/libxerces-c-3.1.sl:0x004818c4 T  xercesc_3_1::XMLDateTime::getRawData() const
../lib/libxerces-c-3.1.sl:0x00000000 U  xercesc_3_1::XMLBigDecimal::getRawData() const
../lib/libxerces-c-3.1.sl:0x002c2ab0 T  xercesc_3_1::XMLAbstractDoubleFloat::getRawData() const
../lib/libxerces-c-3.1.sl:0x002c9988 T  xercesc_3_1::XMLDateTime::getRawData() const
../lib/libxerces-c-3.1.sl:0x002c5378 T  xercesc_3_1::XMLBigDecimal::getRawData() const
../lib/libxerces-c-3.1.sl:0x002c99a0 T  xercesc_3_1::XMLDateTime::getRawData() const

有人可以帮我理解如果符号在文本部分中,它怎么可能是未定义的?还是我误解了什么?

编辑:在代码中我可以看到代码中的内联函数定义,所以为什么找不到符号是另一个问题:

inline XMLCh*  XMLBigDecimal::getRawData() const
{
    return fRawData;
}
4

0 回答 0