Pourquoi ne pas Qt reconnaître mon fichier d'en-tête? ne peut pas ouvrir le fichier include Aucun fichier ou répertoire
J'ai le ci-dessous dans mon .fichier pro et j'ai des fichiers que #include "headerhere".
Par exemple: #include "StdAfx.h"
. Cependant, je suis un
d'erreur Impossible d'ouvrir le fichier include: 'StdAfx.h': Aucun fichier ou répertoire.
Je reçois la même erreur si je utiliser #include "StdAfx.h"
ou #include "Shared/StdAfx.h"
. C'est extrêmement frustrant et je ne peux pas faire aucun travail effectif, à moins que Qt commence à reconnaître mes en-têtes. J'ai trouvé en ligne pas de solution pour ce. Ce qui se passe?
.fichier pro a:
HEADERS += ibproject.h \
Shared/StdAfx.h \
Shared/TwsSocketClientErrors.h \
Shared/TagValue.h \
Shared/shared_ptr.h \
Shared/ScannerSubscription.h \
Shared/OrderState.h \
Shared/Order.h \
Shared/IBString.h \
Shared/HScrollListBox.h \
Shared/Execution.h \
Shared/EWrapper.h \
Shared/EClientSocketBaseImpl.h \
Shared/EClientSocketBase.h \
Shared/EClient.h \
Shared/Contract.h \
Shared/CommonDefs.h \
Shared/CommissionReport.h \
SocketClient/src/EClientSocket.h
ewrappersubclass.h
INCLUDEPATH += $$PWD/SocketClient
DEPENDPATH += $$PWD/SocketClient
EDIT: pourquoi je suis downvotes? C'est un problème légitime, je vais avoir
Sorte d'annuaire qui a "stdafx.h"?
il est actuellement en
Je ne connais pas QT, mais avez-vous essayé d'ajouter le répertoire avec stdafx.h à INCLUDEPATH, quelque chose comme
J'ai essayé d'inclure à la fois
c'est une question tout à fait pertinente; je suis d'avoir exactement le même problème. avez-vous trouvé une solution?
il est actuellement en
shared/stdafx.h
mais pour être honnête, je l'ai copié et collé à la fois la racine et le dossier partagé, juste pour tester si c'était parce que j'avais un peu de syntaxe erronée. Non, il ne veut pas le reconnaître, même lorsque son dans les deux dossiersJe ne connais pas QT, mais avez-vous essayé d'ajouter le répertoire avec stdafx.h à INCLUDEPATH, quelque chose comme
INCLUDEPATH += $$PWD
J'ai essayé d'inclure à la fois
$$PWD
et $$PWD/Shared
mais il n'a pas aidéc'est une question tout à fait pertinente; je suis d'avoir exactement le même problème. avez-vous trouvé une solution?
OriginalL'auteur Terence Chow | 2013-04-27
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. La raison en est que j'utilise deux ordinateurs en parallèle et le fichier makefile essayé de trouver des fichiers à des chemins tels qu'ils sont fixés sur la précédente. Mais tout semblait bien - comme dans votre cas, l'info-bulle lors du survol de l'inclure m'a montré le chemin d'accès correct, également F2 (suivez symbole sous le curseur) navigué à moi de l'en-tête correcte.
Je pensais que qmake est re-maked chaque fois que je change quelque chose dans la .fichier pro, mais évidemment pas.
Il suffit d'exécuter Build->qmake, il devrait résoudre le problème.
aussi, qt ne peut pas reconnaître les espaces dans le chemin, s'il vous plaît prendre cela en considération.
OriginalL'auteur vitakot
Vous devez mettre à jour le fichier qmake.
OriginalL'auteur Sirga
ajouter dans .pro
INCLUDEPATH += $$_PRO_FILE_PWD_
Je ne suis pas sûr de savoir pourquoi cela fonctionne..mais ça fonctionne 🙂
OriginalL'auteur stephone
Le fichier n'est pas dans votre chemin.
Les en-TÊTES partie d'un fichier pro répertorie les fichiers d'en-tête que le projet dépend. Ces fichiers sont considérés comme pour le traitement par la moc s'ils ont la macro q_object dans la définition de classe. Ajout d'un fichier d'en-TÊTES de ne pas le mettre en inclure le chemin de recherche.
Vous avez également un errant en-tête (ewrappersubclass.h) parce que vous avez oublié d'échapper à la fin de la ligne.
Je soupçonne que la raison pour cela est un Windows sensibilité à la casse de problème. Le compilateur est sensible à la casse, mais le système de fichiers n'est pas; ou vice-versa. Tel que vous
#include "shared/stdafx.h"
quand vous devriez#include "Shared/StdAfx.h"
.INCLUDESPATH
n'a pas besoin d'ajouter leStdAfx.h
parce que je suis y compris avecShared/StdAfx.h
...une idée de pourquoi ce qui se passe?Vous devriez regarder le Makefile généré avec qmake pour trouver ce chemin est donné pour le compilateur
OriginalL'auteur koan
Il est plus probable en raison de la précédente C1189 d'erreur, voir ici.
OriginalL'auteur cmannett85
Je sais que ce post est très vieux, mais Il m'est juste arrivé.
a fait le tour. N'oubliez pas de faire qmake puis construire tous les.
Tout le meilleur!
OriginalL'auteur htennek2k
J'ai ce problème de temps en temps, surtout quand je fais une demande d'extraction ou de copier le code autour de.
La solution de facilité consiste à supprimer tous les qt fichiers générés, et Build->qmake puis tout Reconstruire.
C'est un Bug de Qt ne pas identifier correctement les fichiers qui ont besoin d'être régénérées et, même si l'IDE liens tout bien, cette erreur se produit au moment de la compilation. Le même phénomène se produit lorsqu'il génère ui_formname.h fichiers d'en-tête, certains changements ne sont pas efficace tout de suite.
Parfois, le redémarrage de l'QtCreator est nécessaire. Faire le supprimer et redémarrer toujours résout ce problème précis.
Have a nice day!
OriginalL'auteur Raphael States