Невозможно собрать 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 и включили его в свой путь.
измените каталог, чтобы увеличить root, например: d:\boost_1_56_0
тип: бутстрап
bjam -sICU_PATH=d:\icu --toolset=msvc-12.0 --build-type= полная стадия
Вышесказанное работало просто отлично для меня. Просто убедитесь, что указали версию VC++, в моем случае выше 12.0