On Tue, 11 Feb 2003 at 21:20 (+0100), Ralph Müller wrote:
ich versuche gerade ein kleines Programm aus dem Linux-Magazin zu kompilieren. Drin ist ein Befehl "#include
". Diese Datei "iostream.h" wird nicht gefunden: $ gcc -o programm programm.c programm.c:4: iostream.h: Datei oder Verzeichnis nicht gefunden
Diese Datei ist aber im Verzeichnis /usr/include/g++/ enthalten. Offenbar sucht gcc nicht in diesem Verzeichnis.
Ein "man gcc" brachte mich auf die Idee es mit $ gcc -I/usr/include/g++/ -o programm programm.c zu versuchen. Aber damit kommen nur hunderte von Zeilen mit wirren Fehlermeldungen. Das scheint also auch der total falsche Lösungsansatz zu sein.
gcc ist der C-Compiler, g++ der C++-Compiler. Im Prinzip handelt es sich aber um den gleichen Compiler nur dass der mit anderen Einstellungen aufgerufen wird; Du hast gerade eine solche `andere Einstellung' gefunden. Weiterhin muss natuerlich gegen die `richtige' Bibliothek gelinkt werden (also libc oder libstdc++). Naja, und iostream.h gibt es eben nur in C++. Also: $ g++ -o programm.c programm Die Dateiendung sollte dann von `.c' auf `.cpp' oder auch `.cc' geaendert werden.
Ich bin selbst Laie was den gcc angeht. Wie kann ich dem gcc sagen, daß er das o.g. Verzeichnis miteinbeziehen soll?
Dein Ansatz war schon richtig, folgendes wuerde funktionieren: $ gcc -W -Wall -lstdc++ -o test test.cpp Besserer (bzw. `modernerer') Stil waere: #include <iostream> using namespace std; Oder (noch besser) immer explizit std:: aufzurufen, also z. B.: std::cout << "Test" << std::endl; Aber da Du ja Code von einer Zeitschrift kopiert hast waere es etwas muehsam alles zu aendern. HTH. Gruß, Bernhard -- "Mit dem Geist ist es wie mit dem Magen: Man kann ihm nur Dinge zumuten, die er verdauen kann." -- Winston Churchill