【问题标题】:Unable to cross compiling linux kernel on eclipse无法在eclipse上交​​叉编译linux内核
【发布时间】:2015-10-30 08:35:54
【问题描述】:

我正在尝试在 Eclipse 上编译 Linux。我只为 x86 编译,但想使用我的工具链。我创建了一个项目为“File -> C Project -> Linux gcc”,并给出了我的 Linux 内核的位置。我右键单击“项目 -> 属性 -> C/C++ 构建 -> 设置”并更改了 GCC C 编译器和链接器,并包含我的工具链的路径。

在 C/C++ 构建中,我将 make 替换为以下命令

make ARCH=x86 CC=/home/poky/build/tmp/sysroots/i686-linux/usr/bin/corei7-64-poky-linux/x86_64-poky-linux-

现在当我尝试构建时,我遇到了错误

 make ARCH=x86 CC=/home/poky/build/tmp/sysroots/i686-linux/usr   
 /bin/corei7-64-poky-linux/x86_64-poky-linux- all 
 Building file: ../virt/kvm/arm/arch_timer.c
 Invoking: GCC C Compiler
 /home/poky/build/tmp/sysroots/i686-linux/usr/bin/corei7-64-         
 poky-linux/x86_64-poky-linux-gcc -I/home/poky/build/tmp/sysroots     
 /i686-linux/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"virt/kvm/arm/arch_timer.d" -MT"virt/kvm/arm/arch_timer.d" -o "virt/kvm/arm/arch_timer.o" "../virt/kvm/arm/arch_timer.c"
  ../virt/kvm/arm/arch_timer.c:19:23: fatal error: linux/cpu.h: No such file or directory
 #include <linux/cpu.h>
                   ^
  compilation terminated.
  make: *** [virt/kvm/arm/arch_timer.o] Error 1

如何在 Eclipse 上交叉编译 Linux 内核?我想使用自己的工具链。

【问题讨论】:

    标签: linux eclipse


    【解决方案1】:

    您的编译工作正常,但您似乎尚未添加所有必要的包含路径。 正如错误消息已经提到的那样,编译器找不到 linux/cpu.h

    您可以在以下位置添加其他包含路径:Project->Properties->C/C++ General->Paths and Symbols

    【讨论】:

    • 感谢 lilUnicorn,我添加了包含路径。这是在eclipse上交​​叉编译linux的正确方法吗?
    • 你真的想通过 eclipse 编译 Linux Kernel 吗?如果是,我建议在命令行上使用默认的 make 命令执行此操作。然后可以使用“make menuconfig”设置所有必要的信息。我从来没有见过有人用eclipse编译内核^^。用老式的方式做;-)。
    • 谢谢lilUnicorn,但我需要在IDE中做,这是要求
    • 好的,我明白了,假设您的 .config 文件设置正确并且您选择了正确的编译器路径,我猜它应该可以工作。但我无法用实际知识来支持它,从未尝试过。
    • 嗨 lilUnicorn,我需要在路径和符号中添加哪些信息。我需要在哪里添加工具链信息
    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 2014-12-15
    • 2017-08-11
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    相关资源
    最近更新 更多