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 schreibstusing 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.)