2012-08-07 83 views
0

我想用OSG編譯我的項目,我在OpenSUSE 12.1中安裝了所有必需的RPM。我不知道是怎麼回事,因爲我所做的就是和的#include我的編譯器(gcc 4.6.2),它內部的崩潰說:osgDB/FileUtils在我的代碼中導致編譯器錯誤

「之前預期標識符‘(’令牌」

問題是當我點擊了錯誤,它使我的文件實用程序是

枚舉值 {

OK,

SOURCE_EQUALS_DESTINATION,

...等等

};

我不明白髮生了什麼,並會非常感謝任何幫助。

回答

0

顯然這是一個語法錯誤的地方,因爲預處理器遇到了意想不到的事情。您發佈的小片段已經有一個:在枚舉的結束大括號後面應該有一個分號(enum Value { ... };)。

+0

對不起,這是我的一個錯字。在OSG代碼中,它有這個分號,它是什麼讓我陷入困境......爲什麼它會抱怨'('當沒有一個? – user1496542 2012-08-07 18:45:39

+0

後面有一個。你必須發佈更多的代碼遠程調試的可能性 – lynxlynxlynx 2012-08-07 19:28:07

+0

嗯......我的代碼全部是#include ,這就是進一步FileUtils然後崩潰的地方,錯誤包括: /usr/include/osgDB/FileUtils: ('token' /usr/include/osgDB/FileUtils:85:9:error:expected'}'before'('token /usr/include/osgDB/FileUtils:85:9: 9:錯誤:期望數字常量之前的非限定標識 /usr/include/osgDB/FileUtils:85:9:錯誤:預期')'數字常量之前 /usr/include/osgDB/FileUtils:101:21:error:'FileOpResult'沒有命名一個類型 – user1496542 2012-08-07 19:30:41

0

如果我使用多個API和一個#有時會得到奇怪的交互#定義它的常量,而不是像OSG那樣使用很好的名稱空間枚舉。也許你在FileUtils之前包含的東西是#define-ing「OK」或「Value」,這些是最通用的,我可以在給你錯誤的行中看到。在包含之前嘗試#undef OK和#undef Value,否則請避免使用預處理器命令來處理常量。