2013-05-27 54 views
0

我正在将我的Windows代码移植到linux。 当我使用ACE_Atomic_Op API,编译器抛出一些错误如下图所示变量“ACE_Atomic_Op <ACE_Thread_Mutex,unsigned int> AcsHcs :: Cache :: cnt”具有初始值设定项但不完整类型

variable "ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> AcsHcs::Cache::cnt" 
has initializer but incomplete type" 

我的代码如下:

在Cache.h文件我有

static ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> cnt; 

,并在高速缓存中.cpp我宣布cnt为

ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> Cache::cnt = 0; 

在窗口中可以正常工作s,但它是扔在linux错误

任何人都可以告诉我最新的问题是什么?提前

+0

看到这个问题和答案:http://stackoverflow.com/questions/4287428/error-has-initializer-but-incomplete-type –

+0

你有包括ace/Atomic_Op.h? –

回答

0

而是缺乏一个包括

感谢,请加ace/Atomic_Op.h到您的源文件。由于平台的差异,它有时会发生在平台上,你可以免费获得一个包含,当移植到另一个平台时,你必须添加一个明确的include。

相关问题