arm-linux内核编译出错

1.linux源代码是magic arm2410开发板直接提供的,在完成解压后,尝试敲入命令make menuconfig,添加配置文件时出错,提示没有安装nurses。。。

解决方法:安装ncurses库,可以采用如下命令进行安装:
$sudo apt-get install libncurses5-dev

接下来再make menuconfig就没有问题了

注:ncurses库是字符终端下进行屏幕控制的基本库,很多新开发的程序都不使用了,如果要编译一些老程序,还经常用到。

2.建立文件依赖关系make dep时又出错了,找不到交叉编译器,提示如下:
[arm-linux-gcc: Command not found]
想来还是环境变量可能出错了,果然输入命令
\#echo $PATH
看不到交叉编译器所在的目录

我选择了直接修改所有用户的当前shell配置文件的环境变量,而非所有用户的系统环境变量:
1)首先查看用的是哪个shell:echo $SHELL

返回的是/bin/bash
2)回到/etc/路径下,打开文件bash.bashrc,
在文件的最后添加一行命令:
export PATH=/usr/local/arm/2.95.3/bin:$PATH
意思是将[/usr/local/arm/2.95.3/bin:]添加到现有的环境变量当中去
关闭文件
3)更新环境变量:#source bash.bashrc
查看环境变量:#echo $PATH
这里写图片描述

再查看用户环境变量:$echo $PATH
这里写图片描述

现在总算可以顺畅得编译了
#make zImage

2017/4/12新问题:环境变量设置没问题,但是安装了交叉编译器后不能使用,提示No such file or directory,然而使用which命令可以找到
这里写图片描述
解决方法:问题的解决点就在我用的是64位系统,使用 sudo apt-get install lib32ncurses5命令就可以解决。

解决了编译器的问题后,又遇到了新问题,执行make命令,报错,错误信息:1449 “mixed implicit and normal rules”,翻译为中文:混合的和隐含普通规则。
这里写图片描述

在网上查找后得到如下原因:
我的系统的make工具太新(系统:Ubuntu16.04),make的旧版规则已经无法兼容新版。按照以下方式,问题得到解决:
修改前:416行 config %config: scripts_basic outputmakefile FORCE
修改后:416 行 %config: scripts_basic outputmakefile FORCE
修改前:1449 行 / %/: prepare scripts FORCE
修改后:1449 行 %/: prepare scripts FORCE

然后再make uImage又出现下面的错误提示:
“mkimage” command not found - U-Boot images will not be built

此时需要执行下面的命令:
sudo apt-get install u-boot-tools

然后再make uImage即可
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值