2017-10-10 60 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