Wie füge ich einen Include-Pfad in Qt Creator hinzu?

160

Ich habe ein Projekt, an dem ich in Qt Creator arbeite und für das eine Bibliothek eines Drittanbieters erforderlich ist. Ich möchte die Header zum Include-Pfad für das Projekt hinzufügen. Wie mache ich das?

Nathan Osman
quelle

Antworten:

231

Wenn Sie qmake, das Standard-Qt-Build-System, verwenden, fügen Sie der .proDatei einfach eine Zeile hinzu, wie in der qmake-Variablenreferenz dokumentiert :

INCLUDEPATH += <your path>

Wenn Sie Ihr eigenes Build-System verwenden, erstellen Sie ein Projekt, indem Sie "Makefile-basiertes Projekt importieren" auswählen. Dadurch werden einige Dateien in Ihrem Projektverzeichnis erstellt, einschließlich einer Datei mit dem Namen <your project name>.includes. Listen Sie in dieser Datei einfach die Pfade auf, die Sie einschließen möchten, einen pro Zeile. In Wirklichkeit bedeutet dies nur, Qt Creator mitzuteilen, wo nach Dateien gesucht werden soll, die für die automatische Vervollständigung indiziert werden sollen. Ihr eigenes Build-System muss die Include-Pfade auf seine eigene Weise behandeln.

Wie im Qt Creator-Handbuch erläutert , <your path>muss es sich um einen absoluten Pfad handeln. Sie können jedoch betriebssystem-, host- oder benutzerspezifische Einträge in Ihrer .proDatei vermeiden, indem Sie $$PWDden Ordner verwenden, der Ihre .proDatei enthält , z

INCLUDEPATH += $$PWD/code/include
Jason B.
quelle
2
In Ordnung. Das wird für mich gut funktionieren. Gibt es eine globale Einstellung für Include-Pfade?
Nathan Osman
Nicht dass ich wüsste, aber das heißt nicht, dass es keine gibt. Ich sehe nichts in den Optionen, die so aussehen.
Jason B
3
Keine Ursache. Ihre Antwort erwähnt, INCLUDE_PATHaber Sie meinten INCLUDEPATH. Ich werde Ihre Antwort korrigieren :)
Nathan Osman
6
Es ist besser, QMAKE_CXXFLAGSstattdessen die Variablen zu verwenden, da diese INCLUDEPATHfehlerhaft sind (zumindest derzeit - QT5). Das heißt, als ich aufgenommen habe INCLUDEPATH += ../../../, hat das QT nur zufällig ein Verzeichnis in diesem Pfad ausgewählt, und der Compiler hat die Option erhalten -I../../../GUI.
Hi-Angel
4
@ Hi-Angel: Es scheint, dass das INCLUDEPATHangegebene relativ zum Build-Verzeichnis ist, nicht relativ zum Verzeichnis mit dem, .prowie man leicht annehmen könnte. Wie in meiner Bearbeitung der Antwort gezeigt, können Sie "$$ PWD" verwenden, um einen klar definierten Ordner zu erhalten, mit dem der Include-Pfad gestartet werden kann.
ssc
6

Um einen globalen Include-Pfad hinzuzufügen, verwenden Sie den benutzerdefinierten Befehl für qmake im Abschnitt Projekte / Build / Build-Schritte unter "Zusätzliche Argumente" wie folgt: "QT+=your_qt_modules" "DEFINES+=your_defines"

Ich denke, dass Sie auf diese Weise jeden Befehl aus * .pro-Dateien verwenden können.

Alex Maltsev
quelle
5

Für alle, die Qt Creator noch nicht kennen, wie ich, können Sie die .pro-Datei Ihres Projekts in Qt Creator ändern:

Geben Sie hier die Bildbeschreibung ein

Doppelklicken Sie einfach im Projektfenster auf "Ihr Projektname" .pro und fügen Sie den Include-Pfad am Ende der .pro-Datei hinzu, wie ich es getan habe.

Adam
quelle
5
Die Verwendung absoluter Dateipfade ist eine sehr schlechte Idee. Versuchen Sie immer, ein relatives Dateipfadsystem zu verwenden. QT ist plattformübergreifend konzipiert. Und wenn Sie denselben Code auf einem Linux-Computer kompilieren, findet der Compiler diese Dateinamen wie C: \ nicht. Selbst wenn Sie den Quellordner umbenennen oder an einen anderen Ort auf Ihrem eigenen Computer verschieben, schlägt dies dennoch fehl, und Sie muss die .pro-Datei jedes Mal bearbeiten
Shivam Jha
0

Wenn Sie benutzerdefinierte Makefiles verwenden, können Sie auf die .includes-Datei doppelklicken und dort hinzufügen.

Karsten
quelle