linux内核编译报错问题code/include/uapi/linux/types.h:5:10: fatal error: asm/types.h: 没有那个文件或目录

[qiaods]/home/qiaods/kernel>./bb.sh 
make[1]: 进入目录“/home/qiaods/.kb/build-ls”
  GEN     ./Makefile
  Using /home/qiaods/kernel as source for kernel
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  HOSTCC  scripts/mod/sumversion.o
In file included from /home/qiaods/kernel/include/linux/types.h:6:0,
                 from /home/qiaods/kernel/include/linux/mod_devicetable.h:12,
                 from /home/qiaods/kernel/scripts/mod/devicetable-offsets.c:3:
/home/qiaods/kernel/include/uapi/linux/types.h:5:10: fatal error: asm/types.h: 没有那个文件或目录
 #include <asm/types.h>
          ^~~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/mod/devicetable-offsets.s] 错误 1
make[3]: *** 正在等待未完成的任务....
make[2]: *** [scripts/mod] 错误 2
make[1]: *** [scripts] 错误 2
make[1]: 离开目录“/home/qiaods/.kb/build-ls”
make: *** [sub-make] 错误 2

出现这样的编译问题,网上大部分解决办法为在内核源码中建立软连接指向本机系统/usr/include/asm文件夹,可是解决不了问题,分析后得出该问题的原因为内核源码中可能存在已编译的生成的文件和配置文件,执行以下命令清除后内核可正常编译:

make mrproper

Linux下面去编译项目之前,一般常会用make mrproper去先删除之前编译所生成的文件和配置文件,备份文件等,其中,mrproper和distclean,clean之间的区别,Linux内核源码根目录下面的makefile中,有很清晰的解释

help:

@echo的清洗目标:

@echo ' clean -删除大多数生成的文件,但保留配置和'

@echo '足够的构建支持来构建外部模块'

@echo ' mrproper -删除所有生成的文件+配置+各种备份文件'

@echo ' distclean - mrproper +删除编辑器备份和补丁文件'

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值