Frage

Verfolgen Sie dies Frage:

Wenn ich es tue include <iostream>.
Es kommt vor, dass es viele Dateien von enthält /usr/include .A grep "\usr\include" über g++ -E prog.cpp gezählt auf ca. 1260 Einträge ;).

Gibt es eine Möglichkeit, die Einbeziehung verschiedener Dateien zu steuern?
Plattform:Linux
G++-Version:4.2.4

War es hilfreich?

Lösung

Nein, <iostream> schließt sie, weil sie direkt von ihnen abhängt, oder es ist Abhängigkeiten von ihnen abhängig sind.

Ist das nicht nichts, was man dagegen tun kann.

Sie können (auf Ihrem Compiler abhängig) begrenzen die Auswirkungen, die dies auf Kompilierungszeiten hat mithilfe von vorkompilierte Header

Andere Tipps

Mein Vorschlag ist, sich keine Gedanken darüber zu machen, wie viele Dateien der Compiler einbezieht.Konzentrieren Sie sich mehr darauf Korrektheit, Robustheit, Und Zeitplan.Wenn die Build-Zeit ein Problem darstellt, besorgen Sie sich eine schnellere Maschine, bauen Sie über Nacht, machen Sie einen Spaziergang oder teilen Sie den Code in kleinere Teile auf Übersetzungseinheiten.Übersetzungseinheiten sollten klein genug sein, um Code zu enthalten, der sich nicht oft ändert. Veränderungen sind BÖSE.

Die Grundlage des Build-Systems besteht darin, nur die wenigen Dateien zu kompilieren, die sich geändert haben.Wenn Ihr Entwicklungsprozess ordnungsgemäß funktioniert, wird sich die Erstellungszeit mit zunehmendem Projektwachstum immer mehr auf die Verknüpfungsphase konzentrieren.

Wenn die Kompilierungszeit immer noch lang ist, prüfen Sie, ob Ihr Compiler dies unterstützt vorkompilierte Header.Im Allgemeinen ist dies eine Methode für den Compiler, um alle Deklarationen und Definitionen in einer effizienteren Form zu speichern.

Sie #include <iostream>, wenn Sie brauchen Ströme zu verwenden. Das sollte einige Dinge definieren Sie brauchen. Wie viel Aktivität muss es dies tun, ist eine Qualität der Implementierungsproblem. Sie könnten Dateien von /usr/include entfernen, aber das würde die Dinge brechen.

Ich bezweifle es mit 1260 Dateien wirklich. Mit ziemlicher Sicherheit die, die meisten sind doppelte Einträge, die laden nicht nichts, aber nicht aus dem -E Ausgang beschnitten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top