iostream.h, fstream.h kann nicht gefunden werden

8

Ich habe eine 32-Bit-Maschine und ich betreibe darauf Ubuntu 9.10. Ich habe den neuesten GCC-Compiler. Das Problem, mit dem ich konfrontiert bin, ist, dass ich eine Bibliothek im Jahr 2002 entwickelt habe. Der Code ist sicher, aber wenn ich versuche, es zu bauen, gibt es mir Fehler wie iostream.h kann nicht gefunden werden, Fehler: fstream.h: Nein Datei oder Verzeichnis usw. usw. Es gibt viele Dateien, daher kann ich sie nicht ändern.

Können diese Fehler behoben werden, wenn ich gcc 3.0 installiert habe? Wenn ja, wie installiere ich es über meinen bestehenden GCC-Compiler.

    
user269037 08.02.2010, 22:15
quelle

3 Antworten

4

Sie haben es mit einer vordefinierten C ++ - Bibliothek zu tun, und Sie haben gesehen, dass sie nicht mit einem Standard-Compiler kompiliert wird. Sie können die schnelle Umgehung immer ausprobieren, indem Sie z. B. iostream.h mit den zwei Zeilen #include <iostream> und using namespace std; erstellen, und das könnte funktionieren. Es ist nicht zuverlässig und kann zu schwer zu findenden Fehlern führen, die zu einem ungünstigen Zeitpunkt erscheinen.

Wenn dies eine Bibliothek von woanders ist, könnten Sie sehen, ob sie aktualisiert wurde.

Es ist klar, dass der Code nicht mehr korrekt ist. Es mag für eine Implementierung zu irgendeinem Zeitpunkt korrekt gewesen sein, aber es ist nicht jetzt. (Sind Sie sicher, dass es ursprünglich für gcc 3.0 war? Pre-Standard-Compiler waren, naja, nicht Standard, und hatten eine Menge Kuriositäten. Vermeiden Sie das, wofür Standards sind.) Wenn Sie das Originalsystem installieren, können Sie möglicherweise nicht um mit der Bibliothek richtig zu kommunizieren, und neuer Code wird nicht funktionieren. Eine Bibliothek, die nicht mit modernem Code verbunden ist, ist von begrenztem Nutzen.

Andernfalls müssen Sie auf die Einstellung verzichten, dass Sie die Bibliothek nicht ändern und in C ++ konvertieren können. Es wird wahrscheinlich einige Bugs geben, die relativ leicht zu beheben sind (wie der Bereich in for (int i = 0;...) ), und möglicherweise einige subtilere Probleme. Der Code war möglicherweise für einen bestimmten Compiler korrekt, aber es ist nicht jetzt.

    
David Thornley 08.02.2010, 23:00
quelle
4

Die Dateien fstream.h und ähnliche Dateien sind vor-standard Versionen von fstream und ähnlichen Dateien, die vom C ++ Standard angegeben werden und mit modernen Compilern ausgeliefert werden. Die beiden sind normalerweise nicht kompatibel. Ehrlich gesagt, wenn niemand die Bibliothek aktualisiert hat, um den Standard in den letzten 8 Jahren einzuhalten, ist es unwahrscheinlich, dass es sich lohnt, sie zu verwenden.

    
anon 08.02.2010 22:18
quelle
1

Warum konnten Sie kein Skript zum Suchen und Ersetzen aller Instanzen von

schreiben? %Vor%

mit

%Vor%

Und das Gleiche für die anderen?

Aktualisieren : Ich stimme der anderen Antwort und den Kommentaren unten zu ... Ich werde diese Antwort jedoch verlassen, weil ich die Aussage nicht glaube

  

Es gibt viele Dateien, daher kann ich nicht   ändere sie

ist gültig:)

    
John Weldon 08.02.2010 22:17
quelle

Tags und Links