LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2316|回复: 3

编译uClinux环境及其交叉编译环境遇到的问题,跪请高手来指点!

[复制链接]
发表于 2006-6-12 20:14:39 | 显示全部楼层 |阅读模式
这几天弄到一块SmartARM2200开发板,可惜相应的光盘找不到了,于是想自行建立uClinux环境及其交叉编译环境,以下是我建立交叉编译器的过程及其遇到的问题:

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

    SET DISPLAY=127.0.0.1:0.0

3) 修改sh.exe

cd /bin

mv sh.exe sh-original.exe

ln –s bash.exe sh.exe

3、 从www.uclinux.org网上下载下 ... 件/uclinux下:

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

2) Toolchain源码: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- 0.5.1.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、 在/uclinux中执行如下如下命令:

tar xzvf uClinux-dist-20051110.tar.gz

cd uClinux-dist

make xconfig

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

make dep

出错提示:

…………

make[1]: arm-elf-gcc: Command not found

…………

我不予理睬,让其继续进行!!!

5、vi build-uclinux-tools.sh,作如下修改:

#############################################################
#
# EDIT these to suit your system and source locations
#

MAKE=make
PATCH=patch
ELF2FLT="$BASEDIR/elf2flt"
UCLIBC="$BASEDIR/uClinux-dist/uClibc"
KERNEL="$BASEDIR/uClinux-dist/linux-2.4.x"
# KERNEL="$BASEDIR/uClinux-2.0.x"

# TARGET=m68k-elf
TARGET=arm-elf

# set your install directory here and add the correct PATH
PREFIX=/usr/local/
PATH="${PREFIX}/binPATH"; export PATH

# uncomment the following line to build for Cygwin
# you may also need to include your PATCH path specifically
  CYGWIN=cygwin-
# PATCH=/usr/bin/patch

#############################################################

另外,阅读该脚本文件,发现在前面下载的文件中,elf2flt-cygwin-020612.patch并未被处理,既然如此,那www.uclinux.org中提供的工 ... 不知为什么?

6、在/uclinux下执行./build-uclinux-tools.sh build 2>&1 | tee build_toolchain.txt,但当编译到STAGE3时却告诉我/uclinux/uClinux- dist/uClibc/extra/Configs/Config.arm.default找不到,于是将目录底下的Config.arm拷贝成Config.arm.default,敲入命令./build-uclinux-tools.sh continue 2>&1 | tee -a build_toolchain.txt继续进行,过一会将有提示选择一些(Y/N)的东西,过程中另有提示说/bin/sh下找不到arm-elf-gcc命令,我不予理睬,让其进行,结果终于看到STAGE 3 -complete的提示:)

7、运行到 STAGE 7时问题又来了,这次是直接出错跳出:

………………

make[1]: Entering directory `/uclinux/arm-elf-gcc/libiberty'
if [ x"no" = xyes ] && [ ! -d pic ]; then \
  mkdir pic; \
else true; fi
touch stamp-picdir
test x"no" != xyes || \
  gcc -c -DHAVE_CONFIG_H -Dlinux -D__linux__ -Dunix -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/argv.c -o pic/argv.o
gcc -c -DHAVE_CONFIG_H -Dlinux -D__linux__ -Dunix -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/argv.c
test x"no" != xyes || \
  gcc -c -DHAVE_CONFIG_H -Dlinux -D__linux__ -Dunix -I. -I../../gcc-2.95.3/libiberty/../include   ../../gcc-2.95.3/libiberty/choose-temp.c -o pic/choose-temp.o
gcc -c -DHAVE_CONFIG_H -Dlinux -D__linux__ -Dunix -I. -I../../gcc-2.95.3/libiberty/../include  ../../gcc-2.95.3/libiberty/choose-temp.c
In file included from /usr/include/sys/types.h:372,
                 from /usr/include/stdio.h:46,
                 from ../../gcc-2.95.3/libiberty/choose-temp.c:29:
/usr/include/cygwin/types.h:43: error: parse error before "loff_t"
make[1]: *** [choose-temp.o] Error 1
make[1]: Leaving directory `/uclinux/arm-elf-gcc/libiberty'
make: *** [all-libiberty] Error 2

………………

这是为什么呢?

有哪位能帮我找出这个困惑我好几天的疑团吗?非常感谢!
 楼主| 发表于 2006-6-13 15:21:44 | 显示全部楼层
怎么没有人响应呢?大家一起来探讨这个问题啊!
回复 支持 反对

使用道具 举报

发表于 2006-6-21 00:33:19 | 显示全部楼层
第一,最好不用虚拟机来作为工作平台吧,Windows 真的那么难舍弃吗?
我都几乎不用了两三年了。

第二,uClibc 有一套完备的交叉编译和开发环境 -- Buildroot ,你可以用 Subversion 来 checkout. 自己看看网站上的文档吧:
http://buildroot.uclibc.org/
回复 支持 反对

使用道具 举报

发表于 2006-6-21 10:41:33 | 显示全部楼层
Post by wangfeionline

make dep
出错提示:
make[1]: arm-elf-gcc: Command not found

没有arm的编译环境,什么也干不了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表