【背景】
之前已经弄了:
【记录】Ubuntu下用arm-xscale-linux-gnueabi交叉编译uboot
现在继续换个方式,通过Eclipse,去编译对应的uboot。
【折腾过程】
1.同样的去修改makefile,把对应交叉编译器改掉:
1 2 | #CROSS_COMPILE = arm-xscale-linux-gnu- CROSS_COMPILE = arm-xscale-linux-gnueabi- |
2.然后先去创建对应的makefile的target:
3.再去创建一个all的target:
再去弄个clean:
4.然后就可以去先配置,再编译了。
去配置:
输出为:
5.再去编译:
输出中,结果找不到交叉编译器:
【已解决】Ubuntu下Eclipse中交叉编译Uboot出错:make[1]: arm-xscale-linux-gnueabi-gcc: Command not found
6.同样的,也会出现找不到raise的问题:
然后参考之前的:
【已解决】uboot交叉编译出错:gcc/config/arm/lib1funcs.asm:1266: undefined reference to `raise’
去修改:
board/whgs/lowlevel_init.S
在最后加上:
1 2 3 4 5 6 | @add empty raise() to fix (when use new EABI xscale cross compiler to) compile @error gcc /config/arm/lib1funcs .asm:1266: undefined reference to `raise' .globl raise raise: nop mov pc, lr |
为:
然后再编译,就可以了:
【总结】
在Ubuntu下的Eclipse中交叉编译Uboot,总的来说,也还是额外花了点时间的,主要是:
必须给Makefile中的交叉编译器,加上绝对的路径:
1 2 3 4 | #CROSS_COMPILE = arm-xscale-linux-gnu- #CROSS_COMPILE = arm-xscale-linux-gnueabi- #CROSS_COMPILE = /home/crifan/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/bin/arm-xscale-linux-gnueabi- CROSS_COMPILE = /opt/crosscompile/xscale/gcc-4 .6.0-glibc-2.9 /bin/arm-xscale-linux-gnueabi- |
这样Eclipse才能找到此交叉编译器。
而想要通过,把路径加到include中,或者是,添加修改PATH环境变量,都是没用的。