0

我正在将我的 Windows 代码移植到 linux。当我使用 ACE_Atomic_Op api 时,编译器会抛出一些错误,如下所示

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;

在 cache.cpp 我将 cnt 声明为

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

这在windows中工作正常,但在linux中抛出错误

谁能告诉我问题是什么?

提前致谢

4

1 回答 1

0

您缺少包含,请添加ace/Atomic_Op.h到您的源文件。由于平台差异,有时会在平台上免费获得包含,当移植到另一个平台时,您必须添加显式包含。

于 2014-01-13T18:32:02.667 回答