Beim Versuch, eine extern bereitgestellte C++ Code-Basis zu kompilieren, ich habe ein verwirrendes Problem gestoßen:Unterstützt C++ globale Header zum Zeitpunkt der Kompilierung?
Mehrere der Header-Dateien fehlen #include <MyLibrary.h>
, wo MyLibrary eine offensichtliche Abhängigkeit ist, die einfach fehlen, und verhindern Kompilierung.
Meine Frage ist: Gibt es beim Kompilieren von C++ - Code eine Möglichkeit, automatisch eine Abhängigkeits-Header-Datei aufzunehmen, ohne sie in jeder der .h/.cpp-Dateien enthalten zu müssen, wo sie benötigt wird? Mit anderen Worten, eine Möglichkeit, dem C++ - Präprozessor eine Liste von Header-Dateien zur Verfügung zu stellen, die beim Kompilieren des gesamten Quellcodes automatisch eingefügt werden.
Ich verstehe, dass dies wahrscheinlich eine sehr schlechte Idee ist, aber ich versuche zu bestimmen, ob der Code, den ich zur Verfügung gestellt wurde einfach gebrochen ist, oder wenn es eine Möglichkeit gibt, kompiliert werden, ohne jede Datei manuell zu reparieren Abhängigkeiten.
Nicht, dass ich weiß. Vorschlag: Sind Sie sicher, dass Sie den richtigen Standard kompilieren und diese Bibliotheken installiert haben? – Asu
1) C ist nicht C++ ist nicht C. 2) Ihre Frage ist nicht klar. Header sind ** Quellcode **. Sie werden zur Laufzeit nicht in irgendeiner Weise verwendet. Und '# include' ist die Standardmethode für die Verwendung externer Definitionen. Was denkst du sonst noch darüber nach? – Olaf
In Visual Studio ist dies definitiv eine Möglichkeit, dies zu tun - es wird eine Datei (en) in allen .cpp-Dateien in einem Projekt enthalten. Es ist eine der Präprozessoroptionen. –