此代码:
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
答案 0 :(得分:1)
它会尝试将宽字符串转换为普通字符串并为此做什么 创建一个区域设置,并且可能未在您的系统中配置此区域设置。
带来命令输出:
locale
locale -a
;-)
,请检查这是否适用于普通编译器。可能libstdc ++不能很好地构建。