【背景】
之前已经弄了:
【记录】Ubuntu下用arm-xscale-linux-gnueabi交叉编译uboot
现在继续换个方式,通过Eclipse,去编译对应的uboot。
【折腾过程】
1.同样的去修改makefile,把对应交叉编译器改掉:
#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
在最后加上:
@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中的交叉编译器,加上绝对的路径:
#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环境变量,都是没用的。