代码之家  ›  专栏  ›  技术社区  ›  Andrei Vajna II

asm/atomic.h编译错误

  •  1
  • Andrei Vajna II  · 技术社区  · 14 年前

    我有一个旧的C++项目,而且我遇到了问题。对于某个文件,我收到以下类型的错误:

    错误:此作用域中未声明原子

    以及其他标识符,如atomic_read、atomic_inc等。该文件包含asm/atomic.h,但在系统上找不到头文件。我使用的是suse linux企业桌面11和gcc 4.3.2。

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   John Knoeller    14 年前

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

    因此,即使找到了头文件,也仍然需要来自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.asm