boost :: filesystem :: path(std :: wstring)抛出异常

时间:2010-05-28 11:06:09

标签: c++ boost filesystems

此代码:

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 个答案:

答案 0 :(得分:1)

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

    带来命令输出:

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