Невозможно собрать Boost::Locale с ICU 53.1 на Visual C++ 2013

Я пытаюсь собрать Boost::Locale (Boost версия 1.56), используя инструкции "Building Boost.Locale". Во-первых, я успешно установил полную библиотеку Boost несколько месяцев назад, которая создала несколько файлов Boost:: Locale.dll &.lib:

boost_locale-vc120-mt-1_56.dll
boost_locale-vc120-mt-1_56.lib
boost_locale-vc120-mt-gd-1_56.dll
boost_locale-vc120-mt-gd-1_56.lib

Сегодня я скачал ICU4C 53.1 и собрал его (и отладку, и выпуск). Я добавил следующий каталог в мой путь к компьютеру:

d:\icu\bin

Затем я провел тесты ICU, и они прошли нормально.

Затем я попытался связать Boost:: Locale с ICU и сделал следующее, как указано в инструкциях по установке Locale:

В командной строке я набрал:

.\bjam -sICU_PATH=d:\icu --with-locale stage

Это указывало на то, что оно строило, и отображало "... терпение... найдено 1214 целей..." на экране

Вот результаты D:\boost_1_56_0\bin.v2\config.log:

...found 1 target...
...updating 1 target...
config-cache.write bin.v2\project-cache.jam
...updated 1 target...

На данный момент я не знаю, какая "цель" была обновлена, поэтому я создал небольшое тестовое приложение, используя get_all_backends(), чтобы увидеть, какие бэкэнды поддерживаются. К сожалению, были перечислены только winapi и std.

Может кто-нибудь подсказать, что пошло не так?

ОБНОВИТЬ

После открытия файла варенья Locale:

searched-lib icudt : :  <search>$(ICU_PATH)/lib
                        <name>icudata
                        <link>shared
                        <runtime-link>shared ;

Я не уверен в этом, но приведенный выше фрагмент относится к icudt, и я заметил, что к файлам dll добавлена ​​версия ICU, т.е. icudt

Я собираюсь обновить ссылки, чтобы они соответствовали добавленной версии, то есть: icudt53, и посмотрим, что произойдет.

1 ответ

У меня Boost Locale работает нормально, но по какой-то причине я никогда не смог сделать это, используя инструкции Boost Locale. Если инструкции по установке Boost Locale работают на вас, хорошо. Если нет, вы можете сделать то, что я сделал, и полностью перестроить Boost.

Далее предполагается, что вы правильно создали ICU и включили его в свой путь.

  1. измените каталог, чтобы увеличить root, например: d:\boost_1_56_0

  2. тип: бутстрап

  3. bjam -sICU_PATH=d:\icu --toolset=msvc-12.0 --build-type= полная стадия

Вышесказанное работало просто отлично для меня. Просто убедитесь, что указали версию VC++, в моем случае выше 12.0

Другие вопросы по тегам