1

我有一个旧的 C++ 项目,但在构建它时遇到了问题。对于某个文件,我收到以下类型的错误:

错误:未在此范围内声明“atomic_t”

以及其他标识符,如 atomic_read、atomic_inc 等。该文件包含 asm/atomic.h,但我在系统上找不到头文件。我正在使用 SUSE Linux Enterprise Desktop 11 和 gcc 4.3.2。

是否需要安装一些软件包,或者为这些标识符包含一个替代标头?

4

1 回答 1

1

这些是内核头文件,而不是真正供应用程序使用的。它们是在汇编程序中实现的一些原子测试和设置、递增、递减等的原型。

因此,即使您找到了头文件,您仍然需要来自 asm 或 .asm 源的 .o。

这些不是您要查找的文件,但它们很可能是相同或相似的。

http://github.com/github/linux-2.6/blob/3067e02f8f3ae2f3f02ba76400d03b8bcb4942b0/arch/sh/include/asm/atomic.h http://github.com/apache/stdcxx/blob/7b51a66e3db202b7d317c74a5666aaeef7b4ebd0/src/atomic.

于 2010-03-04T09:41:18.947 回答