xerces-c库的g ++链接错误

时间:2018-03-20 14:37:43

标签: c++ 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 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。 问题是,我用CC编译器进行了配置:

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

但尝试使用gcc编译示例。 现在,我已经通过gcc编译器编译了库,问题解决了。

答案 1 :(得分:0)

请检查(在我看来)“-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之外的其他版本的常见依赖项构建的)