我正在使用Visual Studio 2008
。我正在研究AM335x WinCE7
BSP。我添加了一个新的库源代码,它涉及来自common文件夹的头文件。我面临的问题是,当我编译该库代码时,我在公共文件夹头文件中的类中遇到语法错误。在公共代码中不可能发生语法错误。所以,我怀疑其他一些问题可能会导致这种情况。
我收到了关于此事的警告,我认为这会导致错误。
warning C4218: nonstandard extension used : must specify at least a storage class or a type
我使用pragma
来抑制警告。但是,虽然忽略了警告,但错误仍然存在。
请指导我,因为我对此一无所知。此外,如果需要任何其他信息,请发表评论。
EDIT1:
实际上代码很大。请参考this link。我面临着非常相似的问题。他们要求添加StdAfx.cpp和StdAfx.h文件。但它适用于VC ++。所以,我很困惑它是否也符合wince C文件。
EDIT2:
我收到以下错误。
error C2061: syntax error : identifier 'CReg'
error C2059: syntax error : ';'
error C2449: found '{' at file scope (missing function header?)
error C2059: syntax error : '}'
error C2143: syntax error : missing '{' before '*'
warning C4431: missing type specifier - int assumed. Note: C no longer supports default-int
warning C4218: nonstandard extension used : must specify at least a storage class or a type
class CSDIOControllerBase -> C2061,C2059
{ -> C2449
// some code
}; -> C2059
CSDIOControllerBase *CreateSDIOController(); -> C2143
答案 0 :(得分:1)
您尝试编译为C的代码实际上是C ++,因此需要C ++编译。您不能直接在编译为C的代码中包含C ++标头。
如果您需要使用此标题提供的功能,则可能需要在任何情况下使用C ++。所以你自己的代码在任何情况下都需要是C ++。