ICU 58 undefined link in MSYS2 / MinGW64

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)
  • 64-bit toolchain: pacman -S mingw-w64-x86_64-toolchain
  • ICU 58.2 Sources of ICU4C

I did

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

Does anyone know how to solve this problem?

Edit: Same with 58.1, but 57.1 works fine.

+5
source share
1 answer

I tried to create QT 5.8 with the latest version of ICU and this problem arose ...

I managed to create icu4c-58_2 by linking it to libmsvcr100.a using x86_64-6.3.0-posix-seh-rt_v5-rev1

It looks like these features are missing by default libmsvcrt.a

+1
source

Source: https://habr.com/ru/post/1263302/


All Articles