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.