起因:
最近使用天嵌公司提供的/opt/EmbedSky/crosstools_3.4.5_softfloat工具链,但是似乎它包含的C库有问题,arm-linux-ld总是出错
解决思路:
1、使用uboot的目录下的lib_arm和lib_generic充当C库,uboot为了保证高一致性,重新编写了多数标准C库函数。
最终个人原因没有连接成功。
2、重新制作交叉编译器。这途中遇到很多tool包,照着网上的教程也没能制作成功,可能是我对这些工具的理解有偏差!!!
请高手们看看我对这些包的认识是否正确:
1、arm-linux-gcc
2、crosstool-0.43.tar.gz
3、binutils-2.15a.tar.bz2
4、gcc-3.4.1.tar.bz2
5、glibc-2.3.6.tar.gz
6、glibc-port-xxxx.tar.gz
7、glibc-linuxthreads-2.3.3.tar.gz
8、linux-2.6.8.tar.gz
9、linux-libc-headers
http://blog.csdn.net/aweiname2008/article/details/6619299
认识:
1、arm-linux-gcc
别人已经制作完成的交叉编译工具,可能里面包含的C库版本各异。
2、crosstool-0.43.tar.gz
是一个交叉工具链“管理”工具,管理下面的3-9工具包,把下面所有的工具包按照一定规矩(需要配置)安装到制定目录,如果对3-9包熟悉可以不用安装它,直接手工处理。
其中3-7用于生成裸机开发环境;3——9用于生成linux下的开发环境。
3、binutils-2.15a.tar.bz2
crosstool会调用binutils里的工具,如果不用crosstool是不是binutils也不需要了???
4、gcc-3.4.1.tar.bz2
原生态gcc,通过编译生成arm-linux-gcc、avr-xxx-gcc、avr-linux-gcc等交叉编译工具链
5、glibc-2.3.6.tar.gz
由gcc-3.4.1.tar.bz2生成arm-linux-gcc的工具链,在编译代码是将使用glibc-2.3.6的C库
6、glibc-port-xxxx.tar.gz
好像是glibc的补丁,据说glibc逐步不支持arm平台,glib-port用于glibc在各平台下实现兼容
7、glibc-linuxthreads-2.3.3.tar.gz
真心不懂是什么东西
8、linux-2.6.8.tar.gz
需要在操作系统上运行才需要它。
9、linux-libc-headers
是建立linux内核头文件,它的由来在下面的连接可以看到,目的是为了linux内核和glibc兼容,不过高版本的linux内核不需要这个东西了
javascript:;
如果只需要制作裸机下的交叉编译器,[4、5、可能需要6和7]就足够了
本帖最后由 lzwml 于 2014-8-21 06:56 编辑