2017-03-11 2 views
1

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.

+0

Une solution évidente consiste à renommer simplement le fichier 'process.h' dans votre projet. –

+1

@KubaOber Ce n'est pas une solution. C'est une solution de contournement. – jaskmar

+0

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 :) –

Répondre

1

Il y a une option de configuration appriopriate:

CONFIG += no_include_pwd 
+0

Salut, merci de rechercher et de classer un QTBUG "non documenté". Cela fonctionne réellement, mais je suis confus ce qui se passe dans mon projet. Quand le projet s'appelle "bug", j'avais à l'origine ce INCPATH: -I ../ bug -I ../ bug/src -I ../ bug -I. Après avoir ajouté la ligne CONFIG je reçois ceci: -I ../ bug/src -I ../ bug Une idée Pourquoi j'ai eu plusieurs chemins "-I ../ bug" à l'origine? Et pourquoi est-il toujours là (une seule fois) après avoir ajouté l'option CONFIG? Je peux me tromper mais "-I ../ bug" est le même que "-I.", N'est ce pas? – FrozenTarzan

+0

@FrozenTarzan Je ne vois pas votre fichier * .pro - toutes les réponses doivent être à l'intérieur. Envisagez de poser une nouvelle question :) – jaskmar

+0

Bien sûr, mais je voulais savoir si vous aviez toujours le chemin d'accès "retour un répertoire et retransmettre dans le projet" après les changements. Je m'interroge sur le chemin "-I ../ project_dir" qui semble provenir d'une commande. Si vous me dites que vous n'en avez pas eu après le changement et que vous vous êtes débarrassé du "-I". et "-I ../ bug" puis j'ouvre une nouvelle question :-) – FrozenTarzan