Error de C ++ "error: locale :: facet :: _ S_create_c_locale name no válido" al ejecutar el programa desde la línea de comandos

Parece que tengo un problema con los locales en C ++. Cuando ejecuto mi programa desde Eclipse, todo funciona bien. Sin embargo, cuando intento ejecutarme desde la línea de comandos, sigo recibiendo este error:

error: locale :: facet :: _ S_create_c_locale nombre no es válido

Este es el código que dispara el error:

// 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;
}

La salida de "locale" da lo siguiente:

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"

También he intentado usar "de_DE.UTF-8" como la cadena local en lugar de "" (la forma en que debería ser en realidad), pero esto me da el mismo error.

Y curiosamente, el programa funciona bien cuando se ejecuta desde Eclipse. Estoy usando g ++ para compilar desde la línea de comandos con la siguiente versión:

Configurado con: --prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / usr / include / c ++ / 4.2.1 Apple LLVM versión 5.0 (clang-500.2.79) (basado en LLVM 3.3svn) Objetivo: x86_64-apple-darwin12.4.0 Modelo de hilo: posix

¿Alguna idea de lo que podría estar mal aquí?

Aclamaciones,

Martín