我似乎遇到了C++语言环境的问题。当我在Eclipse中运行我的程序时,它一切正常。然而,当我尝试从从命令行运行,我不断收到此错误:当从命令行运行程序时,C++错误“failure:locale :: facet :: _ S_create_c_locale名称无效”
失败:区域::小:: _ S_create_c_locale名无效
这是触发错误代码:
// Set up UTF8 file stream
string fileName = "./sz.txt";
wifstream inFileStream;
try {
setlocale(LC_ALL, "");
inFileStream.open(fileName.c_str());
inFileStream.imbue(locale(""));
if(!inFileStream) {
return EXIT_FAILURE;
}
}
catch (const std::exception &exc) {
wcout << "Error while trying to create UTF8 file stream." << endl;
std::cerr << exc.what() << endl;
if(inFileStream.is_open())
inFileStream.close();
return EXIT_FAILURE;
}
的“语言环境”的输出提供了以下:
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
我也试图用“de_DE.UTF-8”的语言环境字符串,而不是“”(它的方式应该是实际),但是这给了我同样的错误。
奇怪的是,在Eclipse中运行时,程序运行良好。我正在使用g ++从命令行编译以下版本:
配置为:--prefix =/Applications/Xcode.app /目录/ Developer/usr --with-gxx-include-dir =/usr /include/c++/4.2.1 苹果LLVM版本5.0(基于LLVM 3.3svn)(铛-500.2.79) 目标:x86_64的 - 苹果darwin12.4.0 线程模型:POSIX
任何想法可能这里错了吗?
干杯,
马丁