Создание Boost с помощью ICU с использованием MinGW

Я загрузил двоичные файлы последней версии ICU (49) и добавил следующий аргумент в b2:

-sICU_PATH="D:\lib64\icu"

я получил

gcc.link D:\boost\1.51.0\boost\boost\bin.v2\libs\locale\build\gcc-mingw-4.7.1\debug\has_icu64.exe                 
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -licui18n 
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -licudata 
collect2.exe: error: ld returned 1 exit status                                

Таких libicui18n, libicudata среди икубинарных не было.

Поэтому я попытался построить его сам. я получил эту ошибку

PATH=../../lib:../../stubdata:../../tools/ctestfw:$PATH  ../../bin/genrb -e UTF-8 -s resources -d uconvmsg root.txt                                                                                                                 
Makefile:173: recipe for target `uconvmsg/root.res'     failed                                                        
make[2]: *** [uconvmsg/root.res] Error 127                              

Может ли кто-нибудь предложить мне, как мне создать Boost с ICU, используя MinGW?


person user14416    schedule 02.09.2012    source источник


Ответы (1)


1.) библиотеки в загруженном вами пакете называются icuin49.dll, icudt49.dll. Мы регулярно собираем с помощью mingw (и многих других платформ) для тестирования, но не публикуем эти двоичные файлы.

2.) uconv просто доп. Вы можете отключить его с помощью --disable-extras в строке конфигурации. (недостаточно информации, чтобы сказать мне, почему это не удалось.)

person Steven R. Loomis    schedule 11.09.2012
comment
Это означает, что в скрипте конфигурации boost есть ошибка, потому что он ищет i18n и данные, а не in и dt? Я попал в тот же случай - person Johannes Schaub - litb; 06.05.2019
comment
Возможно, имена сборок msvc и mingw (makefile) различаются. - person Steven R. Loomis; 07.05.2019