iostream.h, fstream sind.h kann nicht gefunden werden
Ich habe ein 32-bit-Maschine, und ich bin mit Ubuntu 9.10 drauf. Ich habe die neueste gcc-compiler. Das problem, das ich bin vor ist, dass ich eine Bibliothek entwickelt im Jahr 2002. Der code ist korrekt, sicher, aber wenn ich versuche es gebaut, es gibt mir Fehler wie iostream.h kann nicht gefunden werden, Fehler: fstream sind.h: Keine solche Datei oder das Verzeichnis etc etc. Es gibt viele Dateien, daher kann ich nicht ändern.
Können diese Fehler behoben werden wenn gelöst ich install gcc 3.0 ? Wenn ja, wie installieren Sie es über meine vorhandene gcc-compiler.
- Können Sie nach dem code (Nur die include-Abschnitt), include-Pfad, etc?
- verwenden Sie gcc oder g++?
- Mögliche Duplikate von Warum kann nicht g++ finden iostream.h?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie ' re Umgang mit einem pre-standard-C++ - Bibliothek, und Sie haben gesehen, es wird nicht kompiliert, mit einem standard-compiler. Sie können immer versuchen das schnelle work-around, indem Sie sagen, iostream.h mit den zwei Linien
#include <iostream>
undusing namespace std;
, und die, die arbeiten dürfen. Es ist nicht zuverlässig, und kann zu schwer zu findenden bugs, die erscheinen, zu einem ungünstigen Zeitpunkt.Wenn dies ist eine Bibliothek von woanders, könnte man sehen, ob es aktualisiert wurde.
Die Sache zu realisieren ist, dass der code nicht mehr korrekt. Es mag richtig gewesen zu sein für einige die Umsetzung auf einige Zeit, aber es ist nicht jetzt. (Sind Sie sicher, dass Sie es war, die ursprünglich für den gcc 3.0? Pre-standard-Compiler wurden, gut, nicht standard, und hatten eine Menge Merkwürdigkeiten. Um zu vermeiden, dass ist das, was standards sind.) Wenn Sie nicht installieren Sie das original-system, die Sie möglicherweise nicht in der Lage, um eine Schnittstelle mit der Bibliothek korrekt, und der neue code wird nicht funktionieren. Eine Bibliothek, die keine Schnittstelle mit modernem code ist nur begrenzt von nutzen.
Sonst, Sie gehen zu müssen, aufzugeben, die Einstellung, die Sie nicht ändern können, die Bibliothek und konvertieren Sie es in standard-C++. Es wird wahrscheinlich durchaus ein paar bugs, die relativ einfach zu beheben (wie der Bereich, in
for (int i = 0;...)
), und möglicherweise einige subtilere Probleme. Kann der code richtig gewesen für einen bestimmten compiler, aber es ist nicht jetzt.Den
fstream.h
- und ähnliche Dateien sind pre-standard-Versionen desfstream
- und ähnliche Dateien angegeben, die von der C++ - Standard, die mit modernen Compilern. Die beiden sind in der Regel nicht kompatibel. Ehrlich gesagt, wenn keiner aktualisiert die Bibliothek, um die Einhaltung der standard in den letzten 8 Jahren, ist es kaum Wert, mit.Warum konnte Sie nicht schreiben Sie ein Skript zum suchen und ersetzen alle Instanzen von
mit
Und das gleiche für die anderen?
Update:
Ich Stimme mit den anderen Antworten und die Kommentare unten... ich lasse diese Antwort, aber da ich nicht denke, dass die Aussage
gültig ist 🙂