#c #boost
#c #повышение
Вопрос:
Я пытаюсь создать boost.locale для пользовательской сборки ICU. Я загрузил и создал ICU как статические библиотеки в /opt/icu53.1. Однако, когда я пытаюсь создать boost.locale, он жалуется, что не может найти ICU.
./b2 toolset=clang -sICU_PATH=/opt/icu53.1 --with-locale boost.locale.iconv=off boost.locale.icu=on stage
Boost.Locale needs either iconv or ICU library to be built
Я попытался создать ICU как динамические библиотеки в /opt/icu53.1_dynamic. Но boost не видит ICU даже с этими
./b2 toolset=clang -sICU_PATH=/opt/icu53.1dynamic --with-locale boost.locale.iconv=off boost.locale.icu=on stage
Boost.Locale needs either iconv or ICU library to be built
Есть идеи о том, как заставить boost видеть ICU в указанном месте? Спасибо
Комментарии:
1. вы пробовали
--reconfigure
вариант b2? Я думаю, что в противном случае он кэширует «icu: нет».2. Привет, Артур, спасибо за комментарий. Прошло много времени с тех пор, как я пробовал это (я больше не использую ICU в своем проекте). Если я вернусь к опробованию boost, я попробую это сделать
Ответ №1:
Для меня работают эти строки для Boost 1.64.0:
./bootstrap.sh
--with-icu=${ICU_DIR}
--prefix=${BOOST_PREFIX};
./b2
--prefix=${BOOST_PREFIX}
--reconfigure boost.locale.iconv=off boost.locale.icu=on
-sICU_PATH=${ICU_DIR};
И для Boost 1.74.0:
./bootstrap.sh
toolset=darwin
macosx-version=${VALUE_MACOS_VERSION}
macosx-version-min=${VALUE_MACOS_MIN_VERSION}
--with-icu=${ICU_DIR};
./b2
toolset=darwin
cxxflags="$VALUE_CXXFLAGS"
linkflags="$VALUE_LINKFLAGS"
optimization=speed
--reconfigure boost.locale.iconv=off boost.locale.icu=on
--prefix=${BOOST_PREFIX}
--stagedir=${BOOST_PREFIX}
-sICU_PATH=${ICU_DIR};
Кроме того, все ICU должны! сборка с тем же компилятором.