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?
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?
Antworten:
Wenn Sie qmake, das Standard-Qt-Build-System, verwenden, fügen Sie der .pro
Datei 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 .pro
Datei vermeiden, indem Sie $$PWD
den Ordner verwenden, der Ihre .pro
Datei enthält , z
INCLUDEPATH += $$PWD/code/include
INCLUDE_PATH
aber Sie meinten INCLUDEPATH
. Ich werde Ihre Antwort korrigieren :)
QMAKE_CXXFLAGS
stattdessen die Variablen zu verwenden, da diese INCLUDEPATH
fehlerhaft 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
.
INCLUDEPATH
angegebene relativ zum Build-Verzeichnis ist, nicht relativ zum Verzeichnis mit dem, .pro
wie 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.
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.
Für alle, die Qt Creator noch nicht kennen, wie ich, können Sie die .pro-Datei Ihres Projekts in Qt Creator ändern:
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.