Boost Locale с ICU на iphone - PullRequest
       30

Boost Locale с ICU на iphone

0 голосов
/ 27 мая 2020

У меня есть библиотека, которая должна преобразовывать целые числа в слова (ie. 124 -> сто двадцать четыре). Поэтому я решил добавить языковой стандарт Boost с ICU, который позволяет мне преобразовывать целые числа в слова, как ожидалось для linux. Однако проблема заключается в том, чтобы сделать то же самое для iPhone.

Некоторые детали: мы ориентируемся на 3 архитектуры, x86_64 linux, arm64 ios, armv8 android Основная библиотека написана на C ++ и externs C функции до ios. ICU скомпилирован для всех трех архитектур.

Boost locale скомпилирован для linux, iPhone и android и связан с ICU (это был кошмар!)

Я в конце концов получил сборку фреймворка для iphone, и когда я пытаюсь запустить функцию, я получаю следующее

libc ++ abi.dylib: завершение неперехваченным исключением типа std :: runtime_error: collate_byname :: collate_byname не удалось построить для en-GB

Итак, я немного прочитал и обнаружил, что локали c не поддерживаются на iPhone.

Некоторые вопросы 1. Есть ли в данных ICU информация о локали? Разве не должен работать boost :: locale :: generator? 2. Или мне нужно упаковать локали, которые я хочу включить, и развернуть их на iphone в качестве какого-то ресурса?

Я заметил, что icudata на самом деле очень мало на iPhone (~ 1 МБ) по сравнению с ~ 20 МБ на linux, я подозреваю, что это может быть проблемой, но мне хотелось бы ясности, что использование boost :: locale :: generator или std :: locale действительно будет работать, если icudata содержит больше.

Если у кого-то есть какие-то материалы, которые были бы очень признательны, это была борьба за кросс-компиляцию ICU и Boost!

...