Ich möchte nicht über C ++ oder irgendeine Programmiersprache diskutieren, sondern nur wissen, was ich mit Linux Ubuntu beim Kompilieren von helloworld.cpp falsch mache!
Ich lerne C ++ und meine Schritte sind:
Öffne hello.cpp in vim und schreibe dies
#include <iostream.h>
int main()
{
cout << "Hello World!\n";`
return 0;
}
Also, danach habe ich es im Terminal versucht
g++ hello.cpp
UND die Ausgabe ist
hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.
Was schlagen Sie vor? Eine nützliche Schritt-für-Schritt-Anleitung für mich? Danke!
g++
Ubuntu). akzeptiere es nicht.Antworten:
Sie sollten
#include <iostream>
nicht verwendeniostream.h
; Die .h- Form ist sehr alt und seit Jahren veraltet.Sie können hier mehr lesen, als Sie wahrscheinlich auf den .h- oder nicht .h- Formularen wissen möchten : http://members.gamedev.net/sicrane/articles/iostream.html
(Außerdem sollten Sie schreiben
std::cout
oder eine Zeileusing namespace std;
einfügen , da sonst der Compiler bei Ihrem nächsten Fehler keine Definition für findetcout
.)quelle
iostream.h
auf meinem System befindet sich kein . Tatsächlich werden C ++ - Headerdateien von libstdc ++ - dev installiert , das vom C ++ - Compilerpaket g ++ benötigt wird , das wiederum von build-essential benötigt wird . Nein, zum Kompilieren einfacher C ++ - Programme ist kein Build-Essential erforderlich . Die Installation desg++
Pakets ist ausreichend.cout
ohnestd::
Präfixusing std::cout;
ist vorzuziehenusing namespace std;
. Auch mehrereusing
Anweisungen (ohnenamespace
) sind im Allgemeinen besser, da Sie keine Bezeichner aus demstd
Namespace eingeben, die Sie nicht möchten, und möglicherweise mit den Namen in Ihrem eigenen Programm in Konflikt stehen.Sie sollten ändern
iostream.h
zuiostream
. Ich habe auch den gleichen Fehler erhalten wie Sie, aber als ichiostream.h
zu "Just" gewechselt biniostream
, hat es richtig funktioniert. Vielleicht würde es auch für Sie funktionieren.Mit anderen Worten, ändern Sie die Zeile, die sagt:
Lass es stattdessen so sagen:
Die im Standard definierten Header-Dateien der C ++ - Standardbibliothek haben keine
.h
Erweiterungen.Wie bereits erwähnt , müssen Sie Riccardo Murris Antwort auch
cout
mit dem vollständig qualifizierten Namen aufrufenstd::cout
oder eine der beiden folgenden Zeilen verwenden (vorzugsweise unter Ihren#include
Anweisungen, jedoch über Ihrem anderen Code):Der zweite Weg wird als vorzuziehen angesehen, insbesondere für ernsthafte Programmierprojekte, da er nur
std::cout
alle Namen imstd
Namespace betrifft (von denen einige möglicherweise die in Ihrem Programm verwendeten Namen beeinträchtigen könnten) , anstatt sie alle einzugeben.quelle