2010-05-28 95 views
2

验证码:的boost ::文件系统::路径(STD :: wstring的)抛出异常

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

做工精细。

两个验证码:

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

抛出一个异常:

终止叫做抛出 '的std :: runtime_error'
什么()的 实例后: 区域::小:: _ S_create_c_locale名称 无效

OS - Linux Mint的

升压1.43

GCC-4.6.0

回答

1
  1. 不要在Linux上使用宽字符串。你不需要它们..
  2. 它会尝试将宽字符串转换为普通字符串,并为此 创建语言环境,并且可能在您的系统中未配置此语言环境。

    带命令的输出:

    locale 
    locale -a 
    
  3. GCC-4.6是尚未公布;-),检查这是否与普通的编译器。可能libstdC++没有很好地构建。