我在我的项目中有一个小问题。我建立了静态库(例如test.lib)。将其包含到我的二进制项目链接器中,并将#include "test.h"
包含到stdafx.h
中。但是当二进制开始构建时,C错误发生在CSomeObject
测试:编译器编译外部包含
“错误C2146:语法错误:缺少';'在标识符'测试'之前“。
什么可能是错的?我还包括到我的二进制项目CSomeObject.h
?也许有人可以解释编译器如何与包含? Thnx :)
我在我的项目中有一个小问题。我建立了静态库(例如test.lib)。将其包含到我的二进制项目链接器中,并将#include "test.h"
包含到stdafx.h
中。但是当二进制开始构建时,C错误发生在CSomeObject
测试:编译器编译外部包含
“错误C2146:语法错误:缺少';'在标识符'测试'之前“。
什么可能是错的?我还包括到我的二进制项目CSomeObject.h
?也许有人可以解释编译器如何与包含? Thnx :)
您的CSomeObject类是否缺少“;”在类声明的末尾,即在头文件中的最后一个大括号(“}”)之后?
这听起来像你没有包括需要包含的所有东西,或者你有一个错误地形成的类/结构声明。
有时会产生这种类型的错误,因为test
之前的标识符右边是一些编译器一无所知,所以它与test
治疗说明书,作为该标识,而非用于test
声明。然后,当它看到test
这是一个语法错误。
所以,如果你有行:
CSomeObject test;
但是编译器不知道什么CSomeObject
,你会得到你所看到的错误。
您也将看到问题,像下面这样:
class CSomeObject {
// ...
} // there's a missing semi-colon here
CSomeObject test;
,因为发生的事情是,第二CSomeObject是class CSomeObject
一个实例,和`测试是一个虚假的语法错误。
由语法正确的,什么是应该的样子是:
class CSomeObject {
// ...
}; // note the semi-colon...
CSomeObject test;
张贴一些代码。 – lyricat 2009-11-10 08:56:09
也许你可以发表一些代码? – Oleg 2009-11-10 08:57:50
注意:谢谢大家!通过交换解决了问题。我的意思是包括命令必须是正确的。 – faya 2009-11-10 09:29:06