Compiler hat Problem mit wcout



  • Hallo,

    wollte gerade ein Programm mit widechars schreiben, aber mein Compiler scheint irgendwie ein Problem mit wcout zu haben. Habe dazu mal ein Minimalbeispiel geschrieben:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        basic_string<wchar_t> ausgabe = L"test";
        wcout<<ausgabe<<endl;
        return 0;
    }
    

    Beim Kompilieren kriege ich dann folgenden Fehler:

    ||=== WideChar, Debug ===|
    M:\Uni\HiWi\WideChar\main.cpp||In function int main()':| M:\\Uni\\HiWi\\WideChar\\main.cpp|9|error:wcout' was not declared in this scope|
    M:\Uni\HiWi\WideChar\main.cpp|9|warning: unused variable 'wcout'|
    ||=== Build finished: 1 errors, 1 warnings ===|

    Er scheint also irgendwie wcout nicht in iostream zu haben, aber überall wo ichs nachgelesen habe, steht, dass wcout in iostream definiert ist.

    Falls es am Compiler liegt: Ich benutze den GNU GCC Compiler zusammen mit Code::Blocks.

    Danke schonmal



  • _GLIBCXX_USE_WCHAR_T definiert?



  • Ist std::wcout im Standard überhaupt festgelegt?



  • Die Pfade sehen nach Windows aus, also wirst du wohl MingW benutzen (wichtige Information!) - MingW unterstützt wcout nicht richtig.



  • Version 3.4.5 des Compilers unterstützt noch kein wcout und co. Mit dem neueren (Version 4) funktioniert es erst.



  • Fellhuhn schrieb:

    _GLIBCXX_USE_WCHAR_T definiert?

    Überflüssig.

    daersc schrieb:

    Ist std::wcout im Standard überhaupt festgelegt?

    Ja.


  • Administrator

    daersc schrieb:

    Ist std::wcout im Standard überhaupt festgelegt?

    Jap ist es. Ist nur eine Einschränkung des alten MinGW Kompilers. Entweder den TDM GCC verwenden oder sich die aktuelle MinGW Version selber zusammenfrickeln.

    Grüssli



  • Code::Blocks 10.5 mit gcc (g++) 4.4.1
    compiliert deinen Quelltext ohne Probleme und funktioniert -> Ausgabe: test

    Digital Mars 8.52 mit STL auch okay.



  • Hey,

    danke für die schnellen Antworten! Habe jetzt manuell die neue Version von MinGW runtergeladen und installiert. Damit läufts.

    Allerdings gibt er jetzt beim Linken eine Warnung aus:

    ||warning: auto-importing has been activated without --enable-auto-import specified on the command line.|
    ||Info: resolving std::wcout by linking to __imp___ZSt5wcout |
    ||=== Build finished: 0 errors, 1 warnings ===|

    Was heißt das genau und wie krieg ichs weg? 😉

    Habe gerade mal testweise ein anderes Projekt kompiliert und da krieg ich die gleich Warnung und anschließend 32 Fehler, die es vorher nicht gab...



  • Habe jetzt einfach mal TDM GCC draufgemacht und damit läuft alles wunderbar. Danke! Der Thread kann also zugemacht werden...


Anmelden zum Antworten