Frage

Ich habe nur ein "C ++ Standard-Dynamic" Bibliotheksprojekt mit Xcode und mit LLVM 2.0 zusammengestellt. Ich stelle fest, dass die PCH-Datei die Zeile #include <iostream> enthält aber die Datei Test.cp enthält auch diese #include <iostream> Aussage.

Das Merkwürdige ist, dass durch die Aussage Entfernen in Test.cp , die Erstellung fehl mit dem Fehler Semantic Issue – Use of undeclared identifier 'std' trotz der Tatsache, dass diese Aussage auch im PCH enthalten ist.

Warum funktioniert die PCH Arbeit? Gibt es eine Einstellung fehlt mir? Ich habe noch nie etwas getan, mit ihnen vor (da sie immer nur Arbeit), so bin ich nicht sicher, was es verursacht hat nicht funktioniert, auch mit einem brandneuen Projekt.

War es hilfreich?

Lösung

vorkompilierte Header wird für die Beschleunigung Kompilierung verwendet. Sie haben keine andere Wirkung, insbesondere Sie noch die Header enthalten müssen, wo sie gebraucht werden.

Bearbeiten - In Xcode die pch-Datei ist wirklich ein Präfix-Header, der (mit der Standard-Projektkonfiguration) werden vorkompilierte geschieht. Überprüfen Sie die GCC_PRECOMPILE_PREFIX_HEADER und GCC_PREFIX_HEADER Buildeinstellungen.

Andere Tipps

Löschen der abgeleiteten Daten (Window-Organizer, Registerkarte Projekte, wählen Sie Ihr Projekt) haben XCode den Index für PCH ist wieder aufzubauen. Auch, wenn Sie Unit-Tests verwenden, gibt es eine separate PCH für die Unittests Ziel. Achten Sie darauf, dies schließt auch die erforderlichen Importe.

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