Author Topic: [invalid] error when linking svn 2286 with xerces 3.1  (Read 4431 times)

skankerror

  • Guest
Hi here's the code when trying to link.
That's 32 bit ubuntu 10.10 version with libxerces-c3.1

Code: [Select]
Linking CXX executable ../../../mk/linux/megaglest
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::calcRequiredSize(unsigned short const*, xercesc_3_1::MemoryManager*)':
(.text+0x7c): undefined reference to `ucnv_fromUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::transcode(unsigned short const*, char*, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0x14e): undefined reference to `ucnv_fromUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::transcode(char const*, unsigned short*, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0x240): undefined reference to `ucnv_toUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::transcode(char const*, xercesc_3_1::MemoryManager*)':
(.text+0x2e8): undefined reference to `ucnv_toUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::transcode(char const*, xercesc_3_1::MemoryManager*)':
(.text+0x341): undefined reference to `ucnv_toUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::calcRequiredSize(char const*, xercesc_3_1::MemoryManager*)':
(.text+0x430): undefined reference to `ucnv_toUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::~ICULCPTranscoder()':
(.text+0x490): undefined reference to `ucnv_close_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::~ICULCPTranscoder()':
(.text+0x500): undefined reference to `ucnv_close_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::~ICULCPTranscoder()':
(.text+0x570): undefined reference to `ucnv_close_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::canTranscodeTo(unsigned int)':
(.text+0x6b4): undefined reference to `UCNV_FROM_U_CALLBACK_STOP_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::canTranscodeTo(unsigned int)':
(.text+0x6d3): undefined reference to `ucnv_setFromUCallBack_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::canTranscodeTo(unsigned int)':
(.text+0x721): undefined reference to `ucnv_fromUnicode_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::canTranscodeTo(unsigned int)':
(.text+0x763): undefined reference to `ucnv_setFromUCallBack_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::~ICUTranscoder()':
(.text+0x7ed): undefined reference to `ucnv_close_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::~ICUTranscoder()':
(.text+0x85d): undefined reference to `ucnv_close_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::~ICUTranscoder()':
(.text+0x8bd): undefined reference to `ucnv_close_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::ICUTranscoder(unsigned short const*, UConverter*, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0x959): undefined reference to `ucnv_getMaxCharSize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::ICUTranscoder(unsigned short const*, UConverter*, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0x966): undefined reference to `ucnv_getMinCharSize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::ICUTranscoder(unsigned short const*, UConverter*, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0xa09): undefined reference to `ucnv_getMaxCharSize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::ICUTranscoder(unsigned short const*, UConverter*, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0xa16): undefined reference to `ucnv_getMinCharSize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::makeNewLCPTranscoder(xercesc_3_1::MemoryManager*)':
(.text+0xa78): undefined reference to `ucnv_open_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::compareNIString(unsigned short const*, unsigned short const*, unsigned int)':
(.text+0xb16): undefined reference to `u_foldCase_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::compareNIString(unsigned short const*, unsigned short const*, unsigned int)':
(.text+0xb29): undefined reference to `u_foldCase_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::compareIString(unsigned short const*, unsigned short const*)':
(.text+0xc17): undefined reference to `u_foldCase_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::compareIString(unsigned short const*, unsigned short const*)':
(.text+0xc2d): undefined reference to `u_foldCase_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeFrom(unsigned char const*, unsigned int, unsigned short*, unsigned int, unsigned int&, unsigned char*)':
(.text+0xdbb): undefined reference to `ucnv_toUnicode_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeFrom(unsigned char const*, unsigned int, unsigned short*, unsigned int, unsigned int&, unsigned char*)':
(.text+0xf57): undefined reference to `ucnv_getMaxCharSize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::lowerCase(unsigned short*)':
(.text+0x10a2): undefined reference to `u_tolower_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::upperCase(unsigned short*)':
(.text+0x10c2): undefined reference to `u_toupper_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)':
(.text+0x11ac): undefined reference to `ucnv_fromUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICULCPTranscoder::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)':
(.text+0x127f): undefined reference to `ucnv_fromUChars_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTransService::makeNewXMLTranscoder(unsigned short const*, xercesc_3_1::XMLTransService::Codes&, unsigned int, xercesc_3_1::MemoryManager*)':
(.text+0x1441): undefined reference to `ucnv_openU_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeTo(unsigned short const*, unsigned int, unsigned char*, unsigned int, unsigned int&, xercesc_3_1::XMLTranscoder::UnRepOpts)':
(.text+0x1562): undefined reference to `UCNV_FROM_U_CALLBACK_STOP_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeTo(unsigned short const*, unsigned int, unsigned char*, unsigned int, unsigned int&, xercesc_3_1::XMLTranscoder::UnRepOpts)':
(.text+0x157f): undefined reference to `UCNV_FROM_U_CALLBACK_SUBSTITUTE_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeTo(unsigned short const*, unsigned int, unsigned char*, unsigned int, unsigned int&, xercesc_3_1::XMLTranscoder::UnRepOpts)':
(.text+0x15c3): undefined reference to `ucnv_setFromUCallBack_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeTo(unsigned short const*, unsigned int, unsigned char*, unsigned int, unsigned int&, xercesc_3_1::XMLTranscoder::UnRepOpts)':
(.text+0x1617): undefined reference to `ucnv_fromUnicode_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(ICUTransService.o): In function `xercesc_3_1::ICUTranscoder::transcodeTo(unsigned short const*, unsigned int, unsigned char*, unsigned int, unsigned int&, xercesc_3_1::XMLTranscoder::UnRepOpts)':
(.text+0x1654): undefined reference to `ucnv_setFromUCallBack_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(XMLUniCharacter.o): In function `xercesc_3_1::XMLUniCharacter::getType(unsigned short)':
(.text+0xe): undefined reference to `u_charType_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xc07): undefined reference to `uset_openPatternOptions_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xc38): undefined reference to `uset_serialize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xc78): undefined reference to `uset_serialize_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xc8b): undefined reference to `uset_getSerializedSet_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xc93): undefined reference to `uset_getSerializedRangeCount_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xcb6): undefined reference to `uset_getSerializedRange_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xcea): undefined reference to `uset_setSerializedToOne_4_2'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libxerces-c.a(RangeToken.o): In function `xercesc_3_1::RangeToken::getCaseInsensitiveToken(xercesc_3_1::TokenFactory*)':
(.text+0xcf5): undefined reference to `uset_close_4_2'
collect2: ld returned 1 exit status
make[2]: *** [../mk/linux/megaglest] Erreur 1
make[1]: *** [source/glest_game/CMakeFiles/megaglest.dir/all] Erreur 2
make: *** [all] Erreur 2
You may now launch MegaGlest from this directory like this:
mk/linux/megaglest --ini-path=mk/linux/ --data-path=mk/linux/
or from within the build directory:
../mk/linux/megaglest --ini-path=../mk/linux/ --data-path=../mk/linux/

I downgraded to xerces 2.8 and everything works fine.

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: error when linking svn 2286 with xerces 3.1
« Reply #1 on: 25 May 2011, 10:31:35 »
Hmm yes I think we are not compatible with 3.1. I think both xerces 2.8 and 3.1 are provided in Ubuntu, you just need to install libxerces-c28 and remove/purge libxerces-c3*, so there should be no need to downgrade packages.

We should probably explicitly state that xerces 2.8 is required on the Linux Compiling page if this is so.

Edit: On Ubuntu Natty (11.04), x86_64, with only libxerces-c 3.1 (not even libxerces-c3-dev) installed, and after removing the 'build' directory, r2286 compiles and links fine for me.

Here's the packages I have installed:

Code: [Select]
$ dpkg -l libxerces-c\* | tail -n6 | awk '{print $1" "$2}' | sort
ii libxerces-c3.1
un libxerces-c28
un libxerces-c2-dev
un libxerces-c2-doc
un libxerces-c3-dev
un libxerces-c-doc

Can you provide your error message, please?
« Last Edit: 18 June 2016, 16:42:37 by filux »
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

skankerror

  • Guest
Re: error when linking svn 2286 with xerces 3.1
« Reply #2 on: 25 May 2011, 12:50:27 »
I removed build dir and now it works with xerces 3.1. thanks

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: error when linking svn 2286 with xerces 3.1
« Reply #3 on: 25 May 2011, 13:48:01 »
Yes, sometimes when updating from a previous build and getting link errors or compile errors its a good idea to remove the temp build folder and re-run the cmake sequence since some things are cached by cmake.

Thanks