Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ICU 58 undefined reference in MSYS2/MinGW64

Tags:

mingw-w64

icu

Using instructions from Compiling-ICU-with-MinGW I got the following error

digitlst.o:digitlst.cpp:(.text+0x11): undefined reference to `_free_locale'
digitlst.o:digitlst.cpp:(.text+0x8fe): undefined reference to `_create_locale'
digitlst.o:digitlst.cpp:(.text+0xa20): undefined reference to `_create_locale'
collect2.exe: error: ld returned 1 exit status

My build environment:

  • MSYS2 with gcc version 6.3.0 (Rev1, Built by MSYS2 project)
  • 64 Bit Toolchain: pacman -S mingw-w64-x86_64-toolchain
  • ICU 58.2 Sources ICU4C

I did

unzip icu4c-58_2-src.zip
cd icu/source
./runConfigureICU MinGW prefix=$PWD/../dist
make

Does anybody know how to solve this issue?

Edit: Same is with 58.1, but 57.1 works fine.

like image 623
aquadev Avatar asked Nov 09 '22 02:11

aquadev


1 Answers

I was trying to build QT 5.8 with the latest version of ICU and this issue popped up...

I was able to build icu4c-58_2 by linking against libmsvcr100.a using x86_64-6.3.0-posix-seh-rt_v5-rev1

It appears that these functions are missing from the default libmsvcrt.a

like image 102
Kyle Ketterer Avatar answered Dec 20 '22 13:12

Kyle Ketterer