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即可