Ошибка ссылки g++ для библиотеки xerces-c

g++ -std=c++14 -m32 -I/export/home/ab0599/local/include -L/export/home/ab0599/local/lib xerces_tst1.cpp -o xerces_tst1 -lxerces-c-3.2

Undefined                       first referenced
 symbol                             in file
__1cG__CrunKpure_error6F_v_         /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1cG__CrunIex_alloc6FI_pv_         /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1cG__CrunKcross_cast6Fpvpkn0AQstatic_type_info_4_1_ /export/home/ab0599/local/lib/libxerces-c-3.2.so
typeinfo for xercesc_3_2::XMLException /var/tmp//ccjKE5ec.o
xercesc_3_2::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_3_2::PanicHandler*, xercesc_3_2::MemoryManager*) /var/tmp//ccjKE5ec.o
__1cG__CrunGex_get6F_pv_            /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1cG__CrunMex_rethrow_q6F_v_       /export/home/ab0599/local/lib/libxerces-c-3.2.so
xercesc_3_2::XMLUni::fgXercescDefaultLocale      /var/tmp//ccjKE5ec.o
__1cG__CrunSregister_exit_code6FpG_v_v_ /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1cG__CrunHex_skip6F_b_            /export/home/ab0599/local/lib/libxerces-c-3.2.so
xercesc_3_2::XMLPlatformUtils::Terminate()     /var/tmp//ccjKE5ec.o
__1cG__CrunIex_clean6F_v_           /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1cG__CrunKex_rethrow6F_v_         /export/home/ab0599/local/lib/libxerces-c-3.2.so
c::c(N6,  (int0_t))                 /export/home/ab0599/local/lib/libxerces-c-3.2.so
c::c(n6,  (int0_t))                 /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1c2K6Fpv_v_                       /export/home/ab0599/local/lib/libxerces-c-3.2.so
__1c2k6Fpv_v_                       /export/home/ab0599/local/lib/libxerces-c-3.2.so
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status

Пожалуйста, помогите решить проблему. Я пробовал разные комбинации параметров, но ничего не помогло.

2 ответа

Я решил проблему. Проблема была в том, что я выполнил настройку с помощью компилятора CC:

./configure --prefix=/export/home/ab0599/local --disable-network CC=cc CXX=CC CFLAGS=-m64 CXXFLAGS=-m64

но попытался скомпилировать пример с gcc. Теперь я скомпилировал библиотеку компилятором gcc и проблема была решена.

Пожалуйста, проверьте (на мой взгляд) несоответствующие пути, указанные в "-L/export/home/sian/local/lib" и показанные в "/export/home/ab0599/local/lib". Если у вас есть ссылка на этот путь, это нормально.

сделать ldd /export/home/ab0599/local/lib/libxerces-c-3.2.so и попытаться решить (вероятно, отсутствуют) зависимости.

Если зависимости удовлетворены, возможно, у вас несоответствие версий (скорее всего, ваши libxerces были собраны с другой версией общей зависимости, чем ваш xerces_tst1)

Другие вопросы по тегам