Установка пользовательской локализации на Boost :: FileSystem бросает исключение на CentOSC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Установка пользовательской локализации на Boost :: FileSystem бросает исключение на CentOS

Сообщение Anonymous »

Пересмотренная версия: < /p>
Основная задача < /h2>
У меня есть проблема для правильной настройки аппликации, поэтому можно применять кодирование UTF-8 для повышения :: FileSystem :: Path :: Imbue < /code>.
Code работает на любой платформе при строительстве на этой конкретной платформе. Проблема появляется при обертывании приложения на Ubuntu 24.04 с Clang-18 с Appimage. Это приложение работает на большинстве распределений и не работает на CentOS 7.9. < /P>
CPP-код < /h2>

Код: Выделить всё

#include 
#include 
#include 

void setupGlobalCppLocale()
try
{
auto utf8Locale =  std::locale{std::locale::classic(), new boost::program_options::detail::utf8_codecvt_facet{}};
std::locale::global(utf8Locale);
std::cout 
Предполагается, что для работы без проблем на нескольких распределениях Linux: Redhat Enterprise Linux (RHEL) 7.9+, CentOS 7.9+, Ubuntu 18.04+, Debian 10+, SUSE Linux Enterprise Server (SLE) 15, Oracle Linux 8, Amazon Linux 2, Amazon Linux 2023, Alma Linux 8+, Rocky Linux 8+, Linux Mint 20+. И у меня нет (почти) жалоб. < /P>
Проблема появляется только на CentOS 7.9+ (я воспроизводил проблему в моей виртуальной машине).
Исключено, в журналах я могу Смотрите: < /p>
$ strace -o strace_logs_centos.txt ./experiment_locale-1.0.0-x86_64.AppImage
Globa locale set succesfully
Setup boost::filesystem::path::imbue...
Failed to configure global locale: locale::facet::_S_create_c_locale name not valid
Как видите пользовательскую локалу, принимается std :: locale :: global (utf8locale); , но ошибка в случае Boost :: fileystem :: path :: imbue (utf8locale);
Так проблема не является самой пользовательской локали, но способ Boost пытается использовать его.
Так почему это терпит неудачу? И как я могу это исправить? находится в форме ссылок, но поэтому был достигнут ограничение размера вопросов): < /p>

Приложение создается и работает на Centos с успехом. < /li>
Приложение строится на Ubuntu и развернуто, поскольку Appimage to centos не может настроить Imbue для пути усиления. < /li>
< /ul>
Я не могу найти в журналах Подсказка для решения. Я пробовал несколько изменений в определение аппарата без удачи. Результат всегда одинаковый (или хуже - у меня даже одинаковый результат на Ubuntu).

Подробнее здесь: https://stackoverflow.com/questions/794 ... -on-centos
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»