分类: 嵌入式
2015-03-29 19:25:15
修改交叉编译工具
(以下是参考韦东山的嵌入式Linux视频写出来的)
make smdk2410_config
make
// 编译过程中遇到错误:
/bin/bash: line 1: 7874 Segmentation fault
发生段错误,可能的原因是新的u-boot在用到了新的属性,arm-linux-ld这个工具链的版本太低了,导致无法编译,那么就换新的编译器(一个编译器下有各种工具链)
arm-linux-gcc –v // 查看交叉编译器版本
gcc version 3.4.5
make tmp // 先建个临时目录
tar xzf arm-linux-gcc-4.4.3.tar.gz -C tmp/ // 解压到tmp目录下
ls tmp/
opt
ls tmp/opt/FriendlyARM/toolschain/4.4.3/
arm-none-linux-gnueabi bin include lib libexec share
ls tmp/opt/FriendlyARM/toolschain/4.4.3/bin/ // 列出好多的工具链
把它解压到根目录下(对目录操作应该用sudo命令)
sudo tar xzf arm-linux-gcc-4.4.3.tar.gz -C /
我们输入的命令是shell来起作用的,它去找到命令的程序来执行
那么去哪找呢,是根据环境变量来找的,环境变量指定了去哪可以找到那么程序
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/mini2440/gcc-3.4.5-glibc-2.3.6/bin
cd /
ls
bin boot cdrom dev etc home include initrd.img lib lost+found media mnt opt proc root sbin selinux srv sys tmp usr var vmlinuz work
所以执行解压前要弄个临时目录tmp看下,解压的目录下,根文件这么多目录,你直接解压到这里,不然不知道解压后是哪个目录了
现在我们要用的是这个编译器,那么要设置下环境变量
// 以前我们是用这个的
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/mini2440/gcc-3.4.5-glibc-2.3.6/bin
// 修改 (格式 export PATH=新编译器路径:/usr/..../games)
export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
arm-linux-gcc -v
...
gcc version 4.4.3 (ctng-1.6.1)
// 修改成功了
// 以上是手工设置的,如果不想每次重启后,都要设置下环境变量,那么可以这样改
sudo vi /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.4.3/bin"
// 换新的编译器路径就可以了