Blöde Dummyfrage: STL wird von gcc in Kommandozeile nicht gefunden



  • Servus zusammen,

    vor kurzem ging es noch bzw. ich wußte wie ich es dem gcc mitteile wo die STL ist. Ein einfaches Beispiel wie

    //: C03:PassReference.cpp 
    #include <iostream> 
    using namespace std; 
    void f(int& r)
    { cout << "r = " << r << endl;
    cout << "&r = " << &r << endl;
    r = 5;
    cout << "r = " << r << endl;
    }
    
    int main()
    {
    int x = 47;
    cout << "x = " << x << endl;
    cout << "&x = " << &x << endl;
    f(x); 
    // Looks like pass-by-value, 
    // is actually pass by reference 
    cout << "x = " << x << endl;
    } ///:~
    

    Bringt sowas (Ausschnitt):

    [timo@mycastle /usr/src/studienarbeit]$ gcc passreference.cpp
    /tmp/ccmO7zu3.o(.text+0x11): In function `f(int&)':
    : undefined reference to `std::cout'
    /tmp/ccmO7zu3.o(.text+0x16): In function `f(int&)':
    : 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/ccmO7zu3.o(.text+0x29): In function `f(int&)':
    : undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(int)'
    .
    .
    .
    

    Sorry, für die doofe Frage, aber da ich gewöhnlicherweise makefiles benutze, hab ich grad null Peilung. 🙄 Danke schon mal!

    Ciao,

    Timo



  • Immer wieder der gleiche Fehler.

    Du musst die Standard C++ Library mitlinken. Aber ruf am besten einfach das g++ Programm auf (anstelle gcc), dass macht das automatisch 🙄



  • tja, fragt sich, wie du C++ mit einem C Compiler übersetzen willst. Das geht schief. Nimm g++



  • kingruedi schrieb:

    Immer wieder der gleiche Fehler.

    Ja, sorry ich weiß. 🙄

    kingruedi schrieb:

    Du musst die Standard C++ Library mitlinken. Aber ruf am besten einfach das g++ Programm auf (anstelle gcc), dass macht das automatisch 🙄

    Alles klar, funktioniert easy per g++. Thanks a lot! 👍

    Ciao,

    Timo



  • ansonsten, fallst Du z.B. "cc" als Frontend verwendest, kannst Du auch

    cc programm.cpp -o programm -lstdc++
    

    schreiben. 🙂


Anmelden zum Antworten