2012-08-07 82 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,否则请避免使用预处理器命令来处理常量。