CONFIG_X86_X32 enabled but no binutils support的一种原因和解决方法

博客讲述X86上驱动程序编译报错问题。网上推荐检查binutils安装及版本,但作者编译安卓内核时,问题出在设置的交叉编译链前缀全局变量上,解决办法是注释该变量,source配置文件后仍报错,关闭终端重开即可。

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

当你开始通过make命令编译运行在X86(也就是本机上运行的)上的驱动程序时,有时候会突然发现报类似如下的错误:

make[1]: Entering directory '/usr/src/linux-headers-4.15.0-52-generic'
arch/x86/Makefile:156: CONFIG_X86_X32 enabled but no binutils support
arch/x86/Makefile:245: *** You are building kernel with non-retpoline compiler, please update your compiler..  Stop.
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-52-generic'

网上的推荐解决方法,也是错误信息提示我们的“no binutils support”所以我们通常是检查binutils是否安装或者是否版本过久。
但当你执行:

apt-get install binutils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
binutils is already the newest version (2.30-21ubuntu1~18.04.2).
当然你也需要确定gcc也被安装

此时,是不是有点崩溃?
**

我的情况及解决方法如下:

**
我在编译安卓内核的时候,需要配置交叉编译链的前缀,为了不需要每次都手动输入,我设置了全局变量:

vim ~/.bashrc
export CROSS_COMPILE=arm-linux-gnueabi-

问题就出在这里,所以很简单我们只需要将他注释掉就可以了!

当然当你source ~/.bashrc完之后,执行make还是一样的报错,此时把该终端关闭重新打开一个就可以了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值