necropotame / teeworlds-infclass

Infection Mod with a class system for TeeWorlds
Other
40 stars 25 forks source link

Link error because ICU's symbols cannot be found #82

Closed progval closed 7 years ago

progval commented 7 years ago

Hi,

Starting on de22ca59c8eb3a0573d535d4cfe9e789647055f3 (or maybe c0448d0c39863853d8d37615b198dae4d9dfe4a2, which crashes before link), the bam fails with this error:

[82/82] #1 link infclass_srv
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::CLanguage::~CLanguage() » :
localization.cpp:(.text+0x25a) : référence indéfinie vers « unum_close_57 »
localization.cpp:(.text+0x270) : référence indéfinie vers « uplrules_close_57 »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::~CLocalization() » :
localization.cpp:(.text+0x391) : référence indéfinie vers « ucnv_close_57 »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::CLanguage::Localize_P(int, char const*) const » :
localization.cpp:(.text+0x18b6) : référence indéfinie vers « uplrules_select_57 »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::AppendNumber(string<_dynamic_string_core<128> >&, int&, CLocalization::CLanguage*, int) » :
localization.cpp:(.text+0x1fbc) : référence indéfinie vers « unum_format_57 »
localization.cpp:(.text+0x207c) : référence indéfinie vers « u_strlen_57 »
localization.cpp:(.text+0x2095) : référence indéfinie vers « ucnv_getMaxCharSize_57 »
localization.cpp:(.text+0x2112) : référence indéfinie vers « ucnv_fromUChars_57 »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::ArabicShaping(string<_dynamic_string_core<128> >&, int) » :
localization.cpp:(.text+0x2244) : référence indéfinie vers « ucnv_toUChars_57 »
localization.cpp:(.text+0x2251) : référence indéfinie vers « ubidi_openSized_57 »
localization.cpp:(.text+0x2271) : référence indéfinie vers « ubidi_setPara_57 »
localization.cpp:(.text+0x2289) : référence indéfinie vers « ubidi_writeReordered_57 »
localization.cpp:(.text+0x2291) : référence indéfinie vers « ubidi_close_57 »
localization.cpp:(.text+0x22b2) : référence indéfinie vers « u_shapeArabic_57 »
localization.cpp:(.text+0x22ba) : référence indéfinie vers « u_strlen_57 »
localization.cpp:(.text+0x22ce) : référence indéfinie vers « ucnv_getMaxCharSize_57 »
localization.cpp:(.text+0x2348) : référence indéfinie vers « ucnv_fromUChars_57 »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::CLanguage::CLanguage(char const*, char const*, char const*) » :
localization.cpp:(.text+0x2638) : référence indéfinie vers « unum_open_57 »
localization.cpp:(.text+0x2655) : référence indéfinie vers « unum_close_57 »
localization.cpp:(.text+0x2692) : référence indéfinie vers « uplrules_openForType_57 »
localization.cpp:(.text+0x26af) : référence indéfinie vers « uplrules_close_57 »
localization.cpp:(.text+0x26f6) : référence indéfinie vers « icu_57::Locale::Locale(char const*, char const*, char const*, char const*) »
localization.cpp:(.text+0x2700) : référence indéfinie vers « icu_57::UMemory::operator new(unsigned long) »
localization.cpp:(.text+0x271b) : référence indéfinie vers « icu_57::TimeUnitFormat::TimeUnitFormat(icu_57::Locale const&, UTimeUnitFormatStyle, UErrorCode&) »
localization.cpp:(.text+0x272b) : référence indéfinie vers « icu_57::Locale::~Locale() »
localization.cpp:(.text+0x27ef) : référence indéfinie vers « icu_57::UMemory::operator delete(void*) »
localization.cpp:(.text+0x27f7) : référence indéfinie vers « icu_57::Locale::~Locale() »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::Init() » :
localization.cpp:(.text+0x2829) : référence indéfinie vers « ucnv_open_57 »
objs/teeuniverses/components/localization.o : Dans la fonction « CLocalization::AppendDuration(string<_dynamic_string_core<128> >&, int&, CLocalization::CLanguage*, int, icu_57::TimeUnit::UTimeUnitFields) » :
localization.cpp:(.text+0x2f67) : référence indéfinie vers « vtable for icu_57::UnicodeString »
localization.cpp:(.text+0x2fa9) : référence indéfinie vers « icu_57::UMemory::operator new(unsigned long) »
localization.cpp:(.text+0x2fca) : référence indéfinie vers « icu_57::TimeUnitAmount::TimeUnitAmount(double, icu_57::TimeUnit::UTimeUnitFields, UErrorCode&) »
localization.cpp:(.text+0x2fd7) : référence indéfinie vers « icu_57::Formattable::Formattable() »
localization.cpp:(.text+0x2feb) : référence indéfinie vers « icu_57::Formattable::adoptObject(icu_57::UObject*) »
localization.cpp:(.text+0x3013) : référence indéfinie vers « icu_57::Format::format(icu_57::Formattable const&, icu_57::UnicodeString&, UErrorCode&) const »
localization.cpp:(.text+0x307d) : référence indéfinie vers « icu_57::Formattable::~Formattable() »
localization.cpp:(.text+0x3086) : référence indéfinie vers « icu_57::UnicodeString::~UnicodeString() »
localization.cpp:(.text+0x3113) : référence indéfinie vers « ucnv_getMaxCharSize_57 »
localization.cpp:(.text+0x31da) : référence indéfinie vers « ucnv_fromUChars_57 »
localization.cpp:(.text+0x3265) : référence indéfinie vers « icu_57::UnicodeString::~UnicodeString() »
localization.cpp:(.text+0x3278) : référence indéfinie vers « icu_57::UMemory::operator delete(void*) »
localization.cpp:(.text+0x3291) : référence indéfinie vers « icu_57::Formattable::~Formattable() »
collect2: error: ld returned 1 exit status
bam: 'infclass_srv' error 256
bam: error: a build step failed
necropotame commented 7 years ago

Try to install the package libicu-dev

progval commented 7 years ago

It is already installed, version 57.1-4.

necropotame commented 7 years ago

Can you show me the result of "pkg-config --libs icu-uc icu-i18n" ?

necropotame commented 7 years ago

Oh, and remove your config.lua if it's not a fresh install

progval commented 7 years ago

-licui18n -licuuc -licudata Removing config.lua didn't help.

necropotame commented 7 years ago

Can you try to compile TeeUniverse editor ? ICU is also used there, but with cmake, not bam. https://github.com/teeuniverse/teeuniverse

progval commented 7 years ago

It works.

progval commented 7 years ago

I just tried on an other system (with libicu-dev 52.1-8+deb8u4), Infclass does not compile either.

necropotame commented 7 years ago

Can you show me your config.lua ? Sorry to ask you all of this debug output :)

progval commented 7 years ago

Can you show me your config.lua ?

compiler.driver = 'gcc'
compiler.c_compiler = false
compiler.cxx_compiler = false
stackprotector.value = true
minmacosxsdk.value = false
macosxppc.value = false
zlib.value = true
zlib.include_path = false
sdl.value = false
sdl.use_sdlconfig = false
sdl.use_winlib = 0
sdl.use_osxframework = false
icu.value = true
icu.use_pkgconfig = true
icu.use_winlib = 0
freetype.value = false
freetype.use_ftconfig = false
freetype.use_winlib = 0
mysql.value = true
mysql.use_mysqlconfig = false

Sorry to ask you all of this debug output :)

no problem, I have done worse myself

necropotame commented 7 years ago

Ok, I've reproduced the bug. It concerns the non-sql version. I will check that

necropotame commented 7 years ago

Fixed with the last commit. Thanks!

progval commented 7 years ago

It works, thanks!