Einstellungen für den Compiler
In dem Projekt, in dem Sie die Header-Datei aus einem anderen Projekt einschließen möchten, müssen Sie den Pfad der Header-Datei zu den zusätzlichen Include-Verzeichnissen hinzufügen der Projektkonfiguration in den Abschnitt .
So greifen Sie auf die Projektkonfiguration zu:
- Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften.
- Wählen Sie Konfigurationseigenschaften-> C / C ++ -> Allgemein.
- Legen Sie den Pfad unter Zusätzliche Einschlussverzeichnisse fest.
Wie man einschließt
Um die Header-Datei einzuschließen, schreiben Sie einfach Folgendes in Ihren Code:
#include "filename.h"
Beachten Sie, dass Sie den Pfad hier nicht angeben müssen, da Sie das Verzeichnis bereits in die zusätzlichen Einschlussverzeichnisse aufnehmen, damit Visual Studio weiß, wo es gesucht werden muss.
Wenn Sie nicht jeden Speicherort der Header-Datei in den Projekteinstellungen hinzufügen möchten, können Sie einfach ein Verzeichnis bis zu einem Punkt einfügen und dann #include relativ zu diesem Punkt einfügen:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
Einstellung für Linker
Wenn Sie statische Bibliotheken (z. B. .lib-Datei) verwenden, müssen Sie die Bibliothek auch zur Linkereingabe hinzufügen, damit die Symbole zur Verknüpfungszeit verknüpft werden können (andernfalls erhalten Sie ein ungelöstes Symbol):
- Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften.
- Wählen Sie Konfigurationseigenschaften-> Linker-> Eingabe
- Geben Sie die Bibliothek unter Zusätzliche Abhängigkeiten ein.
LeopardSkinPillBoxHat
quelle
#include "proj2\include.h"
. Mehrere Projekte pro Lösung zu haben, scheint sehr auf die NET-Sprachen ausgerichtet zu sein, da sie sehr unterschiedlich verwendet werden. Um einen großartigen Weg zu finden, dies für C ++ - Projekte zu überwinden.#include
hat nichts mit Projekten zu tun - es teilt dem Präprozessor lediglich mit, "den Inhalt der Header-Datei hier abzulegen". Wenn Sie ihm einen Pfad geben, der auf die richtige Position verweist (kann ein relativer Pfad sein, wie z. B. ../your_file.h), wird er korrekt eingeschlossen.Sie müssen sich jedoch mit Bibliotheken (statischen / dynamischen Bibliotheken) vertraut machen, damit solche Projekte ordnungsgemäß verknüpft werden können - aber das ist eine andere Frage.
quelle
Da sich beide Projekte unter derselben Lösung befinden, gibt es eine einfachere Möglichkeit für die Include-Dateien und den Linker, wie unter https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp- beschrieben. projekte? view = vs-2019 :
#include "../libProject/libHeader.h"
) geschrieben werden.quelle
Sie müssen den Pfad zu den Headern in den Projekteigenschaften festlegen, damit der Compiler dort nachschaut, wenn er versucht, die Header-Datei (en) zu finden. Ich kann mich nicht an den genauen Ort erinnern, aber schauen Sie sich die Projekteigenschaften an und Sie sollten ihn sehen.
quelle
Vermeiden Sie vollständige Pfadreferenzen in der Direktive #include, unabhängig davon, ob sie absolut oder relativ sind. Fügen Sie stattdessen den Speicherort des Include-Ordners des anderen Projekts in Ihren Projekteinstellungen hinzu. Verwenden Sie bei Bedarf nur Unterordner in Pfadreferenzen. Auf diese Weise ist es einfacher, Dinge zu verschieben, ohne Ihren Code aktualisieren zu müssen.
quelle
Mein bevorzugter Ansatz ist, @ Benavs Antwort zu erweitern:
$(SolutionDir)
zu den zusätzlichen Include-Verzeichnissen hinzufügenJetzt können Sie Header aus Ihren referenzierten Projekten wie folgt einfügen:
Anmerkungen:
#include
s nicht erforderlich , legt jedoch die richtigen Build-Abhängigkeiten fest, die Sie wahrscheinlich möchten.quelle