+ -
当前位置:首页 → 问答吧 → 生成交叉编译器的问题

生成交叉编译器的问题

时间:2006-01-25

来源:互联网

各位大侠,小弟我是初次接触linux和uclinux,经过几天的查看资料后小弟决定动手做点事情,当然第一件事情就是建立linux环境和建立某一CPU(任何一CPU都可以)的交叉编译环境,主要是熟悉建立交叉编译工具的过程,但在建立交叉编译过程中小弟碰到了一些问题,也从网上找了一些解决办法,但各种办法几乎千变一律,没有什么参考价值,只好向各位大侠请教,下面我先说说我建立交叉编译器的过程:

1、  从网站上下载最新版的cygwin,然后将其安装到d:\cygwin中;

2、  修改cygwin的环境,这里我做了如下的修改:

1)  在d:\cygwin\cygwin.bat中加入set CYGWIN=title ntea

2)  在d:\cygwin\usr\X11R6\bin\startwin.bat中加入set CYGWIN=ntea

3)  启动xterm后输入以下命令来修改sh.exe

cd /bin

mv sh.exe sh-original.exe

ln ?s bash.exe sh.exe

   在此小弟有一个问题向各位大侠请教,cygwin.bat和startwin.bat都可以启动cygwin环境,只不过一个是类似于DOS界面,而另一个是类似于windows界面,但两者的CYGWIN的值却不同,一个是title ntea,另一个是ntea,不知道是为什么?

3、  我从[url="http://www.uclinux.org/"]www.uclinux.org[/url]网上download下如下的文件:

1)  uClinux源码:uClinux-dist-20051110.tar.gz

2)  arm+uClinux工具链的源码:binutils-2.10.tar.bz2,binutils-2.10-full.patch,build-uclinux-tools.sh,elf2flt-20030314.tar.gz,elf2flt-cygwin-020612.patch,gcc-2.95.3.tar.gz,gcc-2.95.3-arm-mlib.patch,gcc-2.95.3-arm-pic.patch,gcc-2.95.3-arm-pic.patch2,gcc-2.95.3-cygwin-020611.patch,gcc-2.95.3-full.patch,gcc-2.95.3-m68k-zext.patch,gcc-2.95.3-sigset.patch,genromfs-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-comffice:smarttags" /><st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">0.5.1</st1:chsdate>.tar.gz,genromfs-0.5.1-cygwin-020605.patch,STLport-4.5.3.patch,STLport-4.5.3.tar.gz,uClibc-0.9.19.patch.gz,uClibc-20030314.tar.gz

4、  在/usr/local/src中执行如下如下命令:

tar xzvf uClinux-dist-20051110.tar.gz

       cd uClinux-dist

make xconfig

我只修改了几个选项:vendor/product选择GDB,kernel version选择linux-2.4.x,libc version选择uClibc,default all settings选择y,其余的保持不变

make dep

5、  将arm+uClinux工具链的源码拷贝到/usr/local/armtools,将/usr/local/src/uClinux-dist/linux-2.4.x拷贝到/usr/local/armtools中

6、  在/usr/local/armtools下执行./build-uclinux-tools.sh build(它有build,continue,tar,clean四个选项,我不知道应该选build还是tar,但选tar选项总是出现错误,因此我选择了build选项,不知道对还是不对?)在这期间还陆续出现了几个问题,如找不到uClibc目录,我将uClibc-20030314.tar.gz用命令tar解压开,继续编译(./build-uclinux-tools.sh continue),但当编译到STAGE3时确告诉我在/bin/sh下找不到arm-elf-gcc命令,我在windows在搜索了整个d:\cygwin目录都没有找到(不好意思,不知道在cygwin中如何实现该功能?),后来一想我正在生成交叉编译器,arm-elf-gcc就是其中之一,怎么可能有呢?到此小弟就束手无策了,请各位大侠帮帮我,如何解决这个问题。

:confused: :confused: :confused:      

作者: zhan_cl   发布时间: 2006-01-25

当编译到STAGE3时确告诉我在/bin/sh下找不到arm-elf-gcc命令......

是不是前面的编译出错了?      

作者: flag   发布时间: 2006-01-27

我不建议你在cygwin下搞什么交叉编译

很麻烦的

不说编译器bootstrap麻烦
这补丁那补丁的
其他的库,应用程序等更麻烦


cygwin用的c库也麻烦,是bsd的杂牌库,和很多glibc不兼容
会搞到新手焦头烂额      

作者: AIKO_sex   发布时间: 2006-01-27

热门下载

更多