LinuxSir.cn,穿越时空的Linuxsir!

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

昨晚建立交叉编译环境失败,是否有兄台能写个完整的教程,我的问题内详

[复制链接]
发表于 2004-5-7 11:48:46 | 显示全部楼层 |阅读模式
我是编译了binutils-2.14.tar.bz2,gcc-3.4.0.tar.bz2,glibc-linuxthreads-2.3.2.tar.bz2,glibc-2.3.2.tar.bz2,glibc-crypt-2.1.tar.gz只成功了binutils-2.14.tar.bz2,其中我看的一本教程,里面说了gcc的编译要用来内核的头文件,我在安装目录下的include目录下建立了linux和asm两个头文件到/usr/src/include的相应目录下,然后编译了以目标代码为arm-linux的gcc,结果在make时总出现错误,请问哪里出错了,支持下本版开版工作,发第一帖问问题
发表于 2004-5-7 13:12:31 | 显示全部楼层

回复: 昨晚建立交叉编译环境失败,是否有兄台能写个完整的教程,我的问题内详

兄台configure的时候用了什么参数?出错信息是什么来着?
发表于 2004-5-7 13:31:54 | 显示全部楼层
re楼主:
其实已经有很好的教程了,你可以装一次LFS,它会让你很好的理解交叉编译,你现在的问题在那个文档里也有很好的说明,到这里下载它的文档
http://lfs.linuxsir.cn/cgi-bin/wiki/moin.cgi/_cf_c2_d4_d8

若还有问题,可到LFS版查找,但我们这也乐意帮助你解决问题,谢谢支持本版,祝你成功!
 楼主| 发表于 2004-5-8 13:31:01 | 显示全部楼层

回复: 回复: 昨晚建立交叉编译环境失败,是否有兄台能写个完整的教程,我的问题内详

最初由 bigml 发表
兄台configure的时候用了什么参数?出错信息是什么来着?


./configure --target=arm-linux --prefix=/usr/local/arm-linux/

这个命令可以成功执行,接下来,我用了
make LANGUAGES=“c"
之后的出错信息如下:
arm-linux-ar  rc ./libgcc.a libgcc/./_udivsi3.oS libgcc/./_divsi3.oS libgcc/./_umodsi3.oS libgcc/./_modsi3.oS libgcc/./_dvmd_lnx.oS libgcc/./_muldi3.oS libgcc/./_negdi2.oS libgcc/./_lshrdi3.oS libgcc/./_ashldi3.oS libgcc/./_ashrdi3.oS libgcc/./_cmpdi2.oS libgcc/./_ucmpdi2.oS libgcc/./_floatdidf.oS libgcc/./_floatdisf.oS libgcc/./_fixunsdfsi.oS libgcc/./_fixunssfsi.oS libgcc/./_fixunsdfdi.oS libgcc/./_fixdfdi.oS libgcc/./_fixunssfdi.oS libgcc/./_fixsfdi.oS libgcc/./_fixxfdi.oS libgcc/./_fixunsxfdi.oS libgcc/./_floatdixf.oS libgcc/./_fixunsxfsi.oS libgcc/./_fixtfdi.oS libgcc/./_fixunstfdi.oS libgcc/./_floatditf.oS libgcc/./_clear_cache.oS libgcc/./_trampoline.oS libgcc/./__main.oS libgcc/./_absvsi2.oS libgcc/./_absvdi2.oS libgcc/./_addvsi3.oS libgcc/./_addvdi3.oS libgcc/./_subvsi3.oS libgcc/./_subvdi3.oS libgcc/./_mulvsi3.oS libgcc/./_mulvdi3.oS libgcc/./_negvsi2.oS libgcc/./_negvdi2.oS libgcc/./_ctors.oS libgcc/./_ffssi2.oS libgcc/./_ffsdi2.oS libgcc/./_clz.oS libgcc/./_clzsi2.oS libgcc/./_clzdi2.oS libgcc/./_ctzsi2.oS libgcc/./_ctzdi2.oS libgcc/./_popcount_tab.oS libgcc/./_popcountsi2.oS libgcc/./_popcountdi2.oS libgcc/./_paritysi2.oS libgcc/./_paritydi2.oS libgcc/./_divdi3.oS libgcc/./_moddi3.oS libgcc/./_udivdi3.oS libgcc/./_umoddi3.oS libgcc/./_udiv_w_sdiv.oS libgcc/./_udivmoddi4.oS libgcc/./_eprintf.oS libgcc/./__gcc_bcmp.oS
make[2]: arm-linux-ar: Command not found
make[2]: *** [libgcc.a] Error 127
make[2]: Leaving directory `/root/mcutmp/gcc-3.4.0/gcc'
make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory `/root/mcutmp/gcc-3.4.0/gcc'
make: *** [all-gcc] Error 2

上面这些是后面的一些出错信息,大家看看哪里出错了,谢谢

若还要哪些信息,我尽量附上
发表于 2004-5-8 19:49:49 | 显示全部楼层
上面的错误是由于没有找到arm-linux-ar这个命令。
你可以把编译好的binutils后出现在的bin目录加到$PATH目录后,或是
重新编译binutils.x.x.tar.gz试试,编译时新建个目录,在新目录里进行编译。
cd new_dir
$src_dir/configure --prefix=/directory --target=arm-linux

make
make install

编译binutils、gcc、glibc最好分别建一个目录来进行。强烈建议读下LFS文档,链接在上面。

我这儿也有一篇文章,就是讲这个的,你参考一下,弄成了别忘了把自己的经验与大家共亨,good luck!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2004-5-11 01:09:08 | 显示全部楼层
还是出现错误:(

我用../gcc-3.4.0/configure --prefix=/usr/local/ --target=arm-linux --with-headers=/usr/local/arm-linux/include命令
我新建了目录来安装gcc,出错信息如下:
In file included from ../../gcc-3.4.0/gcc/crtstuff.c:62:
../../gcc-3.4.0/gcc/tsystem.h:79:19: stdio.h: 没有那个文件或目录
../../gcc-3.4.0/gcc/tsystem.h:82:23: sys/types.h: 没有那个文件或目录
../../gcc-3.4.0/gcc/tsystem.h:85:19: errno.h: 没有那个文件或目录
../../gcc-3.4.0/gcc/tsystem.h:92:20: string.h: 没有那个文件或目录
../../gcc-3.4.0/gcc/tsystem.h:93:20: stdlib.h: 没有那个文件或目录
../../gcc-3.4.0/gcc/tsystem.h:94:20: unistd.h: 没有那个文件或目录
../../gcc-3.4.0/gcc/tsystem.h:100:18: time.h: 没有那个文件或目录
make[1]: *** [crtbegin.o] Error 1
make[1]: Leaving directory `/root/tmp/across-build/tmp1/gcc'
make: *** [all-gcc] Error 2

用的内核头文件,我曾尝试2.6的内核代码里直接拷贝include/asm-arm/*到/usr/local/arm-linux/include/asm,把include/linux /*拷贝到/usr/local/arm-linux/linux,不能成功之后,我把/usr/local/include/linux和asm直接链接到/usr/src/linux/include/的相应目录里,还是不能成功,真是没辙了,我也看了LFS的文档,自己也编译了一个,但还是没看懂应该怎么做,真是惨,可能人太笨了没办法
发表于 2004-5-11 02:37:58 | 显示全部楼层
兄弟不要着急,我找到点这方面的资料,我正在整理,希望能尽快弄出来!

如果你等不及可以到本版资料索引处第二栏里,有本英文书里,就讲这个。
或是你能找到《嵌入式Linux──硬件、软件与接口》[美]Craig Hollabaugh写的
陈雷、钟书毅等译
电子工业出版社
发表于 2004-5-16 10:53:16 | 显示全部楼层
把/gcc-3.4.0/gcc/config/arm/t-linux文件里的
TARGET_LIBGCC2_CFLAGS = -fPIC改为:
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D__gthr_posix_h
在加一句:
T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h

注:因编译gcc需要一些与glibc相关的库文件,但在编译gcc时还没有编译glibc,加上这个参数就是让ggc初次创建时可以不使用与glibc相关的文件。
 楼主| 发表于 2004-5-17 01:45:48 | 显示全部楼层
最初由 renbagshoes 发表
把/gcc-3.4.0/gcc/config/arm/t-linux文件里的
TARGET_LIBGCC2_CFLAGS = -fPIC改为:
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D__gthr_posix_h
在加一句:
T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h

注:因编译gcc需要一些与glibc相关的库文件,但在编译gcc时还没有编译glibc,加上这个参数就是让ggc初次创建时可以不使用与glibc相关的文件。


还是出现和上面一样的错误,

不知道怎么会这样?
兄弟能编译成功吗?
发表于 2004-5-17 10:03:32 | 显示全部楼层
有些交叉编译工具提供了.sh包,比如uClinux
你用的是什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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