2010-03-04 82 views
1

我有一个旧的C++项目,我遇到了构建它的问题。对于特定的文件我收到以下样的错误:asm/atomic.h编译错误

error: ‘atomic_t’ was not declared in this scope

等人因其他标识符像atomic_read,atomic_inc等文件的包括ASM/atomic.h中,但我找不到头文件在我的系统上。我正在使用SUSE Linux Enterprise Desktop 11和gcc 4.3.2。

是否需要安装某些软件包,或者为这些标识符包含备用头文件?

+1

http://marc.info/?l=linux-kernel&m=115299997829268&w=2 – 2010-03-04 09:30:07

+0

那么你的意思是,开发商应该有依据的ASM/atomic.h中头? – 2010-03-04 09:38:15

+0

应*不*有。 – 2010-03-04 09:39:33

回答

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.asm