Comment ajouter un chemin d'inclusion dans Qt Creator?

160

J'ai un projet sur lequel je travaille dans Qt Creator qui nécessite une bibliothèque tierce. Je souhaite ajouter les en-têtes au chemin d'inclusion du projet. Comment puis-je faire cela?

Nathan Osman
la source

Réponses:

232

Si vous utilisez qmake, le système de construction standard de Qt, ajoutez simplement une ligne au .profichier comme indiqué dans la référence des variables qmake :

INCLUDEPATH += <your path>

Si vous utilisez votre propre système de construction, vous créez un projet en sélectionnant "Importer un projet basé sur Makefile". Cela créera des fichiers dans le répertoire de votre projet, y compris un fichier nommé <your project name>.includes. Dans ce fichier, listez simplement les chemins que vous souhaitez inclure, un par ligne. En réalité, tout cela ne fait que dire à Qt Creator où chercher les fichiers à indexer pour la complétion automatique. Votre propre système de construction devra gérer les chemins d'inclusion à sa manière.

Comme expliqué dans le manuel de Qt Creator , <your path>doit être un chemin absolu, mais vous pouvez éviter les entrées spécifiques au .prosystème d'exploitation , à l'hôte ou à l'utilisateur dans votre fichier en utilisant $$PWDqui fait référence au dossier qui contient votre .profichier, par exemple

INCLUDEPATH += $$PWD/code/include
Jason B
la source
2
D'accord. Cela fonctionnera très bien pour moi. Existe-t-il un paramètre global pour les chemins d’inclusion?
Nathan Osman
Pas que je sache, mais cela ne veut pas dire qu'il n'y en a pas. Je ne vois rien dans les options qui ressemble à ça.
Jason B
3
Ça ne fait rien. Votre réponse mentionne INCLUDE_PATHmais vous vouliez dire INCLUDEPATH. Je vais corriger votre réponse :)
Nathan Osman
6
Il est préférable d'utiliser les QMAKE_CXXFLAGSvariables à la place, car le INCLUDEPATHest bogué (au moins pour le moment - QT5). C'est-à-dire que lorsque j'ai inclus INCLUDEPATH += ../../../, le QT vient de choisir le répertoire au hasard dans ce chemin, et le compilateur a obtenu l'option -I../../../GUI.
Hi-Angel
4
@ Salut-Angel: Il semble que le INCLUDEPATHspécifié soit relatif au répertoire de construction, et non relatif au répertoire avec le .procomme on pourrait facilement le supposer. Comme indiqué dans ma modification de la réponse, vous pouvez utiliser `$$ PWD 'pour obtenir un dossier clairement défini avec lequel démarrer le chemin d'inclusion.
ssc
6

Pour ajouter un chemin d’inclusion global, utilisez la commande personnalisée pour qmake dans la section Projects / Build / Build Steps de «Arguments supplémentaires» comme ceci: "QT+=your_qt_modules" "DEFINES+=your_defines"

Je pense que vous pouvez utiliser n'importe quelle commande à partir de fichiers * .pro de cette manière.

Alex Maltsev
la source
5

Pour toute personne totalement nouvelle dans Qt Creator comme moi, vous pouvez modifier le fichier .pro de votre projet à partir de Qt Creator:

entrez la description de l'image ici

Double-cliquez simplement sur "le nom de votre projet" .pro dans la fenêtre Projets et ajoutez le chemin d'inclusion au bas du fichier .pro comme je l'ai fait.

Adam
la source
5
L'utilisation de chemins de fichiers absolus est une très mauvaise idée. Essayez toujours d'utiliser le système de chemin de fichier relatif. QT est conçu pour être multiplateforme. Et si vous compilez le même code sur une machine Linux, le compilateur ne parviendra pas à trouver les noms de fichiers tels que C: \ De plus, même si vous renommez le dossier source ou le déplacez ailleurs sur votre propre ordinateur, il échouera toujours, et vous devra éditer le fichier .pro à chaque fois
Shivam Jha
0

Si vous utilisez des Makefiles personnalisés, vous pouvez double-cliquer sur le fichier .includes et l'ajouter ici.

karsten
la source