Le comportement par défaut de qmake consiste à ajouter le chemin racine du projet pour inclure le chemin. Dans Makefile, il génère quelque chose comme:Comment supprimer le répertoire racine du projet à partir du chemin d'inclusion dans qmake
INCPATH = -I..\bug -I. -I..\..\Qt\Qt5.8.0\5.8\mingw53_32\mkspecs\win32-g++
où "bug" est le nom du projet. Je ne veux pas "-I". partie. Comment puis-je supprimer cela dans le fichier .pro
?
J'ai essayé:
INCLUDEPATH -= "."
mais cela ne change rien.
Explication détaillée: Mon projet se compile bien sous Linux, mais sous Windows (mingw) il ne peut pas être compilé. Après une recherche approfondie, j'ai réalisé qu'il y avait un fichier nommé "process.h" quelque part inclus dans la bibliothèque C++ standard (string.h). Le problème était que dans mon projet il y avait un fichier avec exactement le même nom. Et paradoxalement le fichier de mon projet a été inclus dans l'en-tête de la bibliothèque standard (!!). Ce comportement provoque l'échec de la compilation du fichier d'en-tête de chaîne.
Une solution évidente consiste à renommer simplement le fichier 'process.h' dans votre projet. –
@KubaOber Ce n'est pas une solution. C'est une solution de contournement. – jaskmar
C'est discutable. Vous continuerez à rencontrer ce problème à plusieurs reprises sur d'autres systèmes de construction. De manière générale, c'est une très mauvaise idée d'avoir tous les fichiers de votre projet nommés comme les autres en-têtes standard. En vous concentrant sur qmake, vous lancez la boîte sur la route :) –