【问题标题】:when I include atomic.h, GCC says No such file, why?当我包含 atomic.h 时,GCC 说没有这样的文件,为什么?
【发布时间】:2010-02-09 02:43:09
【问题描述】:

我想使用原子 API,我包括 .我不知道怎么用!谢谢!


我有它在/usr/src/linux-headers-2.6.28-11/arch/x86/include/asm/atomic.h

我还添加了-I/usr/src/linux-headers-2.6.28-11/arch/x86/include/-I/usr/src/linux-headers-2.6.28-11/include

由于-DCONFIG_X86_32-D__KERNEL__ macro undefined 而产生了一些其他错误。

然后我定义两个宏,

发生了一些错误:

/usr/src/linux-headers-2.6.28-11/include/linux/cpumask.h:600:37: error: "and" may not appear in macro parameter list

/usr/src/linux-headers-2.6.28-11/arch/x86/include/asm/processor.h:159:1: warning: "cache_line_size" redefined

/usr/src/linux-headers-2.6.28-11/include/linux/cache.h:64:1: warning: this is the location of the previous definition

/usr/src/linux-headers-2.6.28-11/include/linux/stddef.h:16: error: expected identifier before ‘false’
/usr/src/linux-headers-2.6.28-11/include/linux/stddef.h:16: error: expected `}' before ‘false’
/usr/src/linux-headers-2.6.28-11/include/linux/stddef.h:16: error: expected unqualified-id before ‘false’
/usr/src/linux-headers-2.6.28-11/include/linux/stddef.h:18: error: expected declaration before ‘}’ token

我的系统是 ubuntu 9.04,在 Virtualbox3.0 上运行。

【问题讨论】:

  • 你真的有头文件吗?是否在 GCC 中包含路径?
  • 请发布您的#include 语句,以及您用于编译的完整命令。
  • g++ -c -I/usr/src/linux-headers-2.6.28-11/arch/x86/include -I/usr/src/linux-headers-2.6.28-11/包括 -DCONFIG_X86_32 -D__KERNEL__ mySource.cpp
  • #include 在我的文件中。

标签: linux gcc header compiler-errors


【解决方案1】:

如果您知道文件在 HD 上的位置,那么您可以说 gcc mySource.c -I/path/to/atomic

请注意,这假设您直接包含“原子”。而不是“some/path/atmomic.h”

【讨论】:

    猜你喜欢
    • 2020-04-02
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    相关资源
    最近更新 更多