在Linux编译中缺少asm/types.h文件

3
lenge@lenge-pc:/lenge/linux/kernel_online$ git branch 
  master  
* tag_v4.15 
CONFIG is defconfig. 

当我编译内核(v4.15)时,发生了错误,如下所示:
从文件中包含:
/lenge/linux/kernel_online/include/linux/types.h:6,
      from /lenge/linux/kernel_online/include/linux/page-flags.h:9,
      from /lenge/linux/kernel_online/kernel/bounds.c:10: 
/lenge/linux/kernel_online/include/uapi/linux/types.h:5:10: fatal
      error: asm/types.h: No such file or directory  #include <asm/types.h>
                  ^~~~~~~~~~~~~ compilation terminated.

这是我的编译方法:
make ARCH=arm64 -C /lenge/linux/kernel_online O=/lenge/linux/kernel_out_aarch64 CROSS_COMPILE=/lenge/gnu/aarch64/bin/aarch64-lenge-linux-gnu- -j4 我创建了符号链接如下: ln -s /lenge/linux/kernel_out_aarch64/source/arch/arm64/include/generated/uapi/asm arch/arm64/include/generated/uapi/asm 没问题。

制作 ARCH=arch ...,其中 arch 是您要编译的目标平台。 - undefined
make ARCH=arm64 -C /lenge/linux/kernel_online O=/lenge/linux/kernel_out_aarch64 CROSS_COMPILE=/lenge/gnu/aarch64/bin/aarch64-lenge-linux-gnu- -j4 - undefined
1个回答

0

我刚刚遇到了同样的问题,交叉编译到arm64。

我注意到尽管我在构建中使用了输出目录(O=),但我的源代码树中有一些生成的文件。我不确定是不是有一次我不小心忽略了O=,或者发生了什么事情,但这导致了一些混乱。

为了解决这个问题,我在源代码目录中运行了make clean(如果你很谨慎,也可以运行make mrproper)来删除所有生成的文件。重新运行我的正常make命令并指定O=后,成功地完成了编译,并且没有在我的源代码目录中生成任何文件(如预期所示)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接