Я построил xerces на HP-UX, используя c ++. Он также создает некоторые исполняемые файлы, которые ссылаются на 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;
}
Задача ещё не решена.
Других решений пока нет …