2017-10-10 3 views
2

J'essaie d'inclure QSoundeffect dans mon projet, mais j'obtiens une erreur du compilateur /home/innereye/Qt5.7.0/5.7/gcc_64/include/QtMultimedia/qsoundeffect.h:76: error: expected unqualified-id before '{' tokenResolve ENUM question de nommage - Qt

Quand je regarde la ligne correspondante dans le code, je vois un ENUM avec le nom Status déclaré.

enum Status 
{ 
     Null, 
     Loading, 
     Ready, 
     Error 
}; 

Si je change le nom de énumérations à Status1, la compilation est Ok, mais je wan't pour éviter et ne pas modifier le code source Qt. Existe-t-il un moyen de voir pourquoi le compilateur ne peut pas le résoudre? Je n'ai aucune énumération dans mon projet avec ce nom, mais peut-être l'une des bibliothèques ou sources externes l'utilise-t-elle?

utilisant Qt 5.7 sur ubuntu 16.04

+1

Utilisez un espace de noms pour * vos * types. Bonne règle générale en général. Et particulièrement utile lorsqu'il s'agit de bibliothèques qui n'ont pas compris la notion de partitionnement de l'espace de noms, comme Qt. – StoryTeller

+0

Avez-vous des définitions dans votre code? – thuga

+0

J'ai défini, mais aucun d'eux n'est appelé Statut. Mon projet ne contient pas le mot 'Statut' comme nom – JLev

Répondre

1

Merci pour toute l'aide, après quelques essais et erreurs je me suis dit exactement ce qui est faux, et le déplacement de la ligne #include avant de l'inclure GL/glx.h a résolu le problème. Il était dû au fait que /usr/include/X11/Xlib.h a la ligne suivante - #define Status int