【问题标题】:boost::filesystem::path(std::wstring) throw exceptionboost::filesystem::path(std::wstring) 抛出异常
【发布时间】:2010-05-28 11:06:09
【问题描述】:

这段代码:

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

工作正常。

这两个代码:

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

抛出异常:

在抛出一个之后调用终止 “std::runtime_error”的实例
什么(): locale::facet::_S_create_c_locale 名称 无效

操作系统 - Linux Mint

提升 1.43

gcc-4.6.0

【问题讨论】:

    标签: c++ boost filesystems


    【解决方案1】:
    1. 不要在 Linux 上使用宽字符串。你不需要它们..
    2. 它尝试将宽字符串转换为普通字符串会发生什么情况 创建一个区域设置,并且您的系统中可能未配置此区域设置。

      带来命令输出:

      locale 
      locale -a
      
    3. GCC-4.6 尚未发布;-),请检查这是否适用于普通编译器。可能 libstdc++ 没有构建好。

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 2018-06-25
      • 2016-06-02
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多