J'ai la pièce de code apparemment apparemment innocous: qui me donne ce message d'erreur: p> Que dois-je faire faux ici? p> p>
5 Réponses :
d'où se trouve ce fichier inclus. Il n'y a rien de mal avec le fichier
vous avez posté; Ce que je soupçonne, c'est que le fichier qui inclut
Il comprend déjà
; code> immédiatement avant d'inclure votre fichier. p>
Il est inclus dans 3 fichiers différents. Le compilateur ne se plaint que dans le fichier inclus de filepath / vocabword.cpp: 1: code>, mais pour chaque fichier qui utilise
ui.h code>, l'inclusion est la toute première ligne de le fichier, donc cela ne peut pas être. Toute autre idée?
Fournissez un exemple complet montrant l'erreur. Commencez par décaper votre code jusqu'à ce que vous obtenez quelque chose de suffisamment petit pour poster. Les chances sont bonnes que vous êtes dans le processus découvrirez votre erreur vous-même;)
Peut-être certains paramètres de compilateur différents pour ce fichier .CPP?
@wrongUsername Si le compilateur ne se plaint que pour l'un des fichiers incluant ui.h code>, le problème est évidemment dans ce fichier. (Peut-être que certains caractères étrangers que votre éditeur ne s'affichent pas?) Sinon: Pourriez-vous avoir un fichier nommé
String code> quelque part dans votre chemin Inclure, avant le système
String code>?
Eh bien, c'est bizarre. A quelque chose d'autre #defined ui_h (qui ne devrait pas causer de problème mais qui sait), ou interface utilisateur? P>
Est-ce que la même chose se passe avec un #pragma une fois (en supposant que votre compilateur supporte-le)? P>
Avez-vous littéralement jumelé le fichier afin que tous les autres code soient commentés? P>
(excuses pour avoir publié plus de questions plutôt que de réponses) p>
Merci pour la réponse de la waffle! Malheureusement, en utilisant Pragma donnant une seule fois le même résultat, et j'ai renommé ui_h à userinterface_h au cas où QT a déjà défini ui_h. Aucune aide. J'ai commenté le fichier qt plaint à propos, QT vient de commencer à se plaindre d'un autre dossier. Va essayer de chasser encore cela.
Un moyen de suivre de telles erreurs est de commencer à partir de la masse supérieure:
testmain.cpp:4:2: error: expected ';' after struct
Woah, c'était exactement ce que le problème était. Merci beaucoup David!
Je suis arrivé ici d'une recherche Google. Si quiconque atterrit sur cette page en raison de la même erreur, vous pouvez également obtenir cette erreur si vous essayez de définir un alias d'espace de noms à la portée de la classe.
Exemple: P>
namespace SomeLongNamespaceName { } class SomeClass { namespace X = SomeLongNamespaceName; // This is illegal and will give the // compiler error from this question };
"nom" dans mon cas était une erreur. Attendu: non qualifié-id avant 'Espace de noms'
Espace de noms dans une déclaration de classe dans l'un des en-têtes en haut du fichier. J'ai donc besoin d'ajouter des points-virgules supplémentaires après le dernier '}' code>. Ainsi tel que
'} ;;;;' code> fera. P>
Normalement, cela se produit lorsque vous oubliez un
; code> quelque part ou que vous utilisez quelque chose sans le définir. Êtes-vous sûr que votre fichier d'en-tête semble exactement comme ça?
Une autre possibilité: vous compilez avec un compilateur C plutôt qu'un compilateur C ++ (mais un compilateur C aurait dû se plaindre de ne pas pouvoir trouver code>). De toute façon, votre code comme fonctionne pour moi. Je soupçonne donc que RedX a cloué: que vous ne nous avez pas montré le code qui provoque le bogue.
@Redx - Yup qui est le fichier d'en-tête entier que j'ai. Je vais jeter un oeil à la réponse de James pour voir si c'est le problème.
@David Je suis à peu près sûr que j'utilise un compilateur C ++. Je vois qt appeler g ++.
Cela pourrait également être causé si vous essayez de déclarer un espace de noms dans une classe. Découvrez la dure chemin ...