发新话题
打印

[其他语言] 建立交叉编译环境时GCC编译出现问题,请高手指教~!

建立交叉编译环境时GCC编译出现问题,请高手指教~!

我的PC上装了FC5。现在一切就绪就差交叉编译平台了。我下载了binutils-2.14、gcc-3.3.2、glibc-2.2.5和linux-2.6.8等包。binutils编译没问题。但在编译GCC时出现了奇怪的问题。现象如下:我的工作目录结构如下:
~/crosstool/gcc-3.3.2-----------------------------这个目录存放了解压缩后的源代码。
~/crosstool/gcc-3.3.2/build-arm-linux--------这个目录用来存放变异产生的临时文件和变异配置等
首先我在~/crosstool/gcc-3.3.2/gccconfig/arm/t-linux 文件里添加了如下两个配置:
    TARGET_LIBGCC2_CFLAGS += -Dinhibit_libc -D__gthr_posix_h
    T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h
然后在~/crosstool/gcc-3.3.2/build-arm-linux目录下输入命令行:
    ../configure --target=arm-linux --prefix=/usr/local/arm/3.3.2 --with-headers=~/crosstool/linux-2.6.x/include --disable-shared --disable-threads --enable-language="c"
建立makefile。接着输入make命令出现了如下错误:
#--------------------------------------------------------------------------------------------------------------------------------------------------
gcc -c  -Dinihibit_libc -D__gthr_posix_h -g -O2 -DIN_GCC -DCROSS_COMPILE  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long   -DHAVE_CONFIG_H -DGENERATOR_FILE    -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/config -I../../gcc/../include ../../gcc/read-rtl.c -o read-rtl.o
In file included from ../../gcc/read-rtl.c:24:
../../gcc/rtl.h:132: 警告:位段类型 ‘code’ 是一个 GCC 扩展
../../gcc/rtl.h:135: 警告:位段类型 ‘mode’ 是一个 GCC 扩展
../../gcc/read-rtl.c: 在函数 ‘fatal_with_file_and_line’ 中:
../../gcc/read-rtl.c:53: 警告:传统 C 不接受 ISO C 风格的函数定义
../../gcc/read-rtl.c: 在函数 ‘read_rtx’ 中:
../../gcc/read-rtl.c:653: 错误:自增运算中的左值无效
make[1]: *** [read-rtl.o] 错误 1
make[1]: Leaving directory `/root/crosstool/gcc-3.3.2/build-arm-linux/gcc'
make: *** [all-gcc] 错误 2
#--------------------------------------------------------------------------------------------------------------------------------------------------
愚人百思不得其解。请各位高手指个路。谢谢~!

TOP

by the way

我一直不太明白在网络上下载的crosstool工具包和自己分别下载binutils-2.14、gcc-3.3.2、glibc-2.2.5并编译安装的工具有什么不同或有什么依赖关系?

TOP

等得花儿都谢了~!

不知道是高手们吝啬于他们的知识还是我来错了网站呢?为什么我的问题这么久都没有答复呢,是太难了还是太简单?就连一点儿建议都没有?

TOP

../../gcc/read-rtl.c:653: 错误:自增运算中的左值无效

先把这个错改掉吧,再编
Once upon a man.

TOP

交叉编译好像不是这么操作的
yyfgw

TOP

版主,我看没有那么简单

../../gcc/read-rtl.c:653: 错误:自增运算中的左值无效
我到源代码里看过了。没有什么错误,至少这个所谓的自增运算没错误。而且我相信从Linux org下载的正是版源代码里不会有这么低级的错误吧?
我觉得是其他的什么配置导致编译有问题。

TOP

yyfgw,请多多赐教

“交叉编译好像不是这么操作的”,请给点看法呀。

TOP

TOP

我也遇到这个问题,配置嘛也试过多种,没用。

TOP

先去看看 Linux from Scratch 吧

做一个交叉编译环境,你需要……
* 编译 binutils
* 编译 glibc
* 编译 gcc

另外,你的 host 系统的 toolchain 版本最好跟 cross compile 的 toolchain 版本一致。
bash$ :(){ :|:;};:&

TOP

发新话题