problem mit gcc



  • Hi.

    Ich bin kein blutiger C++ neuling, habe aber lange nix programmiert, deswegen bin ich wohl nicht auf dem neusten Stand. Ich habe ein nettes kleienes Programm:

    #include <iostream>
    
    main()
    {
            cout << "Hello, world!";
    }
    

    das ich compilieren will. Aber dann kriege ich diesen error:

    test.cpp: In function `int main()':
    test.cpp:5: `cout' undeclared (first use this function)
    test.cpp:5: (Each undeclared identifier is reported only once for each function
       it appears in.)
    

    Der compiler ist

    Configured with: ../gcc-3.2.3/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-checking --with-gnu-ld --verbose --target=i486-slackware-linux --host=i486-slackware-linux
    Thread model: posix
    gcc version 3.2.3
    

    Auf meinem schulserver habe ich

    gcc version 2.95.4 20011002 (Debian prerelease)
    

    , da geht's ohne Probleme.

    Wie soll ich

    cout
    

    benutzen, damit's klappt?



  • Hi,
    entweder du schreibst

    using namespace std;
    

    oder

    std::cout
    


  • Leider hat's nix gebracht 😞 :

    /tmp/ccdHKmzD.o(.text+0x19): In function `main':
    : undefined reference to `std::cout'
    /tmp/ccdHKmzD.o(.text+0x1e): In function `main':
    : undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
    /tmp/ccdHKmzD.o(.text+0x4a): In function `__static_initialization_and_destruction_0(int, int)':
    : undefined reference to `std::ios_base::Init::Init[in-charge]()'
    /tmp/ccdHKmzD.o(.text+0x79): In function `__tcf_0':
    : undefined reference to `std::ios_base::Init::~Init [in-charge]()'
    /tmp/ccdHKmzD.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
    collect2: ld returned 1 exit status
    

    Wieso ist das prorammieren so schwierig geworden in den paar Monaten? :p



  • Bei C++-Dateien sollte man den Compiler über g++ statt gcc aufrufen, sonst wird die Standardlibrary nicht gelinkt (auch wenn er ansonsten anhand des Dateisuffixes erkennen kann, dass es sich um C++ handelt.)


Anmelden zum Antworten