2017-01-25 23 views
5

Использование инструкции из Compiling-ICU-with-MinGW я получил следующее сообщение об ошибкеICU 58 неопределенная ссылка на MSYS2/MinGW64

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 

Моя окружение сборки:

  • MSYS2 с GCC версии 6.3.0 (Rev1, Built по проекту MSYS2)
  • 64-битная инструментальная цепь: pacman -S mingw-w64-x86_64-toolchain
  • ICU 58.2 Источники ICU4C

Я сделал

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

Кто-нибудь знает, как решить эту проблему?

Редактировать: То же самое с 58.1, но 57.1 отлично работает.

+0

У меня та же проблема. Это может быть ошибка в скрипте конфигурации ICU 58, поскольку MinGW-w64 никогда не предлагал '_create_locale' /' _free_locale' (хотя они определены в заголовках, они не существуют в 'msvcrt.dll', которые MinGW-w64 ссылки). Вы пробовали список рассылки? – alecov

ответ

1

Я пытался построить QT 5.8 с последней версией ICU, и этот вопрос появился ...

я смог построить icu4c-58_2 путем связывания с libmsvcr100.a использованием x86_64-6.3.0- POSIX-SEH-rt_v5-rev1

оказывается, что эти функции отсутствуют по умолчанию libmsvcrt.a

+0

Да, 'export LIBS =" - lmsvcr100 "решил это для меня. – Reino