我使用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;
}