【问题标题】:boost::filesystem::path(std::wstring) throw exceptionboost::filesystem::path(std::wstring) 抛出异常
【发布时间】:2025-12-25 13:35:12
【问题描述】:

这段代码:

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++ 没有构建好。

    【讨论】:

      最近更新 更多