2017-10-10 64 views
2

我想包括QSoundeffect在我的项目,但我得到一个编译错误 /home/innereye/Qt5.7.0/5.7/gcc_64/include/QtMultimedia/qsoundeffect.h:76: error: expected unqualified-id before '{' token解决枚举的命名问题 - Qt的

当我看到在代码中的相关行,我看到名为状态枚举声明。

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

如果我改变枚举名状态1,编译是好的,但我wan't避免它,而不是改变了Qt源代码。 有没有办法看到为什么编译器不能解决它?我的项目中没有任何枚举名称,但也许有一个库或外部资源使用它?

在Ubuntu上使用Qt 5.7 16.04

+1

对* your *类型使用命名空间。一般的经验法则。在处理那些没有抓住好命名空间分区概念的库时,特别有用,比如Qt。 – StoryTeller

+0

你的代码中有一些定义吗? – thuga

+0

我已经定义了,但没有一个被称为状态。我的项目不包含“状态”一词,因为名称 – JLev

回答

1

感谢所有帮助下,经过一些试验和错误我想通了,什么是错的,动人的#include行之前,包括GL/glx.h解决了这个问题。这是由于/usr/include/X11/Xlib.h具有以下行 - #define Status int