Linux/安卓驱动编译常见错误与解决方法

本文针对Linux及安卓系统驱动编译中常见的问题提供解决方案,包括编译工具缺失、宏定义导致不可重复构建及内核头文件缺失等问题,适用于Ubuntu、Fedora、CentOS、RHEL及树莓派等系统.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本贴对Linux和安卓系统驱动编译中常见的错误进行记录,并补充相应解决方法,若读者对照此方法无法解决,欢迎补充讨论。

错误一:make时提示找不到make、gcc、g++、flex等

表示当前系统缺少必要的工具包,可执行以下命令安装。

sudo apt install -y make flex bison g++ build-essential

错误二:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]

表示当前编译环境会进行编译的 DATE 以及 TIME 进行检查,若有Warnings警告也作为错误处理上报。参考解决方法:

1. 驱动对应的Makefile文件中增加一行:CFLAGS += -Wno-error=date-time,然后保存重新 make编译。(注:若 CFLAGS 不生效,可将关键字替换为 EXTRA_FLAGS重试)

2. 修改 /lib/modules/'uname -r'/build/Makefile 文件,找到包含 “-Werror=date-time” 这一行注释掉,然后保存退出,重新编译。

错误三:/lib/modules/xxx/build: No such file or directory

表示当前系统缺少内核开发包,为安装匹配系统架构和内核版本的包即可解决此问题。因不同系统包名和安装指令不同,如下仅给出部分系统解决方式供参考。

Ubuntu/Debian/Linux Mint上安装内核头文件

使用dpkg-query命令检查是否有可用的内核头文件。

$ dpkg-query -s linux-headers-$(uname -r)

sudo apt-get install build-essential  //install build-essential(optional)
sudo apt-get update                       
sudo apt-get install linux-headers-$(uname -r)

Fedora/CentOS/RHEL上安装内核头文件

$ rpm -qa | grep kernel-headers-$(uname -r)
$ sudo yum install kernel-headers
$ sudo yum install kernel-devel

树莓派/Raspberry Pi上安装内核头文件

sudo apt install raspberrypi-kernel-headers

其他系统解决方法类似。欢迎大家讨论补充~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PC技术小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值