boost :: filesystem :: path (std :: wstring) выбросить исключение - PullRequest
2 голосов
/ 28 мая 2010

этот код:

boost::filesystem::is_directory("/usr/include");

отлично работает.

и этот код:

boost::filesystem::is_directory(L"/usr/include");

сгенерировать исключение:

завершить вызов после броска экземпляр 'std :: runtime_error'
какие(): locale :: facet :: _ S_create_c_locale name недействительно

ОС - Linux Mint

наддув 1,43

GCC-4.6.0

1 Ответ

1 голос
/ 28 мая 2010
  1. Не используйте широкие строки в Linux. Вы не нуждаетесь в них ..
  2. Что происходит, когда он пытается преобразовать широкую строку в нормальную и для этого создает языковой стандарт, и, возможно, этот языковой стандарт не настроен в вашей системе.

    Вывести команды:

    locale 
    locale -a
    
  3. GCC-4.6 еще не выпущен ;-), проверьте, работает ли он с обычным компилятором. Вероятно, libstdc ++ не был хорошо собран.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...