在Linux编译中错过了asm / types.h

时间:2018-07-04 07:01:32

标签: linux linux-kernel

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

当我编译kernel(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

没关系。

1 个答案:

答案 0 :(得分:0)

我只是将相同的问题交叉编译到arm64。

我注意到即使在构建时使用输出目录(O =),我的源代码树中仍有一些生成的文件。我不确定是否是一次偶然地省略了O =或发生了什么,但这使事情变得混乱了。

要解决此问题,我在源代码目录中进行了清理(或使mrproper偏执)以删除所有生成的文件。用O =重新运行正常的make命令成功,并且没有在源目录中生成文件(如预期)。