gpt4 book ai didi

linux - 如何在Eclipse中包含Linux内核开发的asm头目录?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:02 25 4
gpt4 key购买 nike

我正在 Eclipse IDE for C/C++ Linux Developers (Indigo SR2) 中为嵌入式系统开发 Linux 内核模块(驱动程序)。我已将内核的 include 目录添加到我的项目路径中以进行索引(项目 > 属性 > C/C++ 常规 > 路径和 Sybmols -> 包含(选项卡)-> 添加...(按钮)。)但是,内核的几个 header 文件引用 asm 目录,它实际上是 linux/asm-powerpc 目录(在我的例子中)在 linux/asm-generic 目录顶部的覆盖,其中特定版本覆盖通用。

我如何告诉 Eclipse 的索引器首先将“asm”解释为“asm-powerpc”,如果失败,然后再查看“asm-generic”,而不是仅仅寻找“asm”?将 asm-powerpc 符号链接(symbolic link)到 asm 有一些帮助,但是太多的头文件仅存在于通用位置以使其不可用。

谢谢!

最佳答案

正如我所发现的,与内核构建过程类似,需要很多部分才能让 Eclipse 建立索引。然而,这个具体问题的答案相当简单:

假设您的 Linux 内核构建目录定义为 ${KDIR},您的内核架构为 ${ARCH},那么您需要添加以下包含路径到你的项目:

  • ${KDIR}/include
  • ${KDIR}/arch/${ARCH}/include

您可以在 Project Explorer 中执行此操作,方法是右键单击项目,然后选择 Properties > C/C++ General > Paths and Symbols > Includes(选项卡)> 添加 ... (按钮)

我错过了第二个条目。添加它解决了这个问题。对于这 2 个条目,检查 Unresolved inclusion (右键单击 Project > Index > Search for Unresolved Includes)产生了 0 个错误。

现在又碰到了一个绊脚石。某些类型(如 u32 和 bool)在 Eclipse 中仍未定义。 (我的 Makefile 没有产生任何错误。)我相信这与 Eclipse header 解析中未定义的某些内核特定变量有关,导致 include 的 IFDEF 的评估与内核模块编译期间的评估不同。但是,我还没有解决这个问题,那是另一个问题。 :)

关于linux - 如何在Eclipse中包含Linux内核开发的asm头目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com