Я пытаюсь собрать 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
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
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, и посмотреть, что произойдет.