j491424570 发表于 2010-10-18 19:04:08

arm-linux-gcc 如何更新gcc版本

我的交叉编译环静是用的arm-linux-gcc包安装的.现在想编译linux-2.6.14.1内核,结果出现了错误,网上说是gcc版本问题.我用 configure make make install安装完 gcc-
3.4.5后 ,用 gcc-v命令查看gcc版本已经是 3.4.5可是用 arm-linux-gcc -v查看 gcc版本还是4.3.2.

请问高手们,我是不还要链接一下.具体步骤是什么 .谢谢各位!!!

我出现的错误是,是不是应该把gcc版本降到 3.4.5
arch/arm/mm/alignment.c: In function 'proc_alignment_write':
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
make: *** Error 1
make: *** Error 2

j491424570 发表于 2010-10-18 20:05:18

怎么没人帮忙说一下啊,高手们帮帮小弟吧

ssaweee 发表于 2010-10-18 20:49:33

没卸载原来的啊?




为什么不用系统的包管理器?
apt-get

tyblly 发表于 2010-10-18 21:14:12

修改环境变量就可以了的

j491424570 发表于 2010-10-18 21:30:31

回复【1楼】j491424570
-----------------------------------------------------------------------

怎么卸载原来的?新立得里面没有gcc-3.4.5,所以我就自己装了。

sudo apt-get install gcc-3.4.5我试过了,名字好像拼的不对找不到资源

j491424570 发表于 2010-10-18 21:31:05

回复【2楼】ssaweee
-----------------------------------------------------------------------

怎么修改环境变量啊?二楼给我具体说一下好吗?

j491424570 发表于 2010-10-18 21:35:25

回复【2楼】ssaweee
-----------------------------------------------------------------------

怎么卸载原来的?新立得里面没有gcc-3.4.5,所以我就自己装了。

sudo apt-get install gcc-3.4.5我试过了,名字好像拼的不对找不到资源

j491424570 发表于 2010-10-18 21:35:44

回复【3楼】tyblly
-----------------------------------------------------------------------

怎么修改环境变量啊?二楼给我具体说一下好吗?

erbaor 发表于 2010-10-19 11:08:32

你是要交叉编译吧,4.3.2是arm-linux-gcc的版本号;gcc3.4.5是编译X86平台的,暂时跟交叉编译无关。可能是你的交叉编译器版本太高,因为内核版本对应不同版本arm-linux-gcc,内核太老、编译器太新不行,你换3.4.5的交叉编译器试试吧

j491424570 发表于 2010-10-19 11:27:44

回复【8楼】erbaor
-----------------------------------------------------------------------

我是在换gcc-3.4.5,现在问题是gcc-3.4.5已经安装成功了,用gcc -v显示版本就是3.4.5的。
但arm-linux-gcc -v中显示arm-linux-gcc中使用的还是原来的gcc-4.3.2。
arm-linux-gcc中就没有用我新装的gcc-3.4.5

erbaor 发表于 2010-10-19 12:41:25

回复【9楼】j491424570
-----------------------------------------------------------------------

你的arm-linux-gcc版本是4.3.2吧?

j491424570 发表于 2010-10-19 14:21:15

回复【10楼】erbaor
-----------------------------------------------------------------------
是啊,arm-linux-gcc默认的是gcc-4.3.2。我现在虽然新装了gcc-3.4.5。但arm-linux-gcc还是使用原来的gcc-4.3.2

我该怎么设置一下才能让arm-linux-gcc使用我新装的gcc-3.4.5

erbaor 发表于 2010-10-19 14:29:29

晕 我听不懂了。arm-linux-gcc4.3.2跟gcc-3.4.5不矛盾啊。前者是你的交叉编译器,用于编译ARM平台上的程序;后者是你的系统的编译工具,用于编译X86的程序。哪个平台用哪个工具,一一对应的啊。我意思是你把arm-linux-gcc4.3.2扔了,换成arm-linux-gcc3.4.5,跟gcc-3.4.5没关系。

Cliff 发表于 2010-10-19 14:41:01

回复【楼主位】j491424570
我的交叉编译环静是用的arm-linux-gcc包安装的.现在想编译linux-2.6.14.1内核,结果出现了错误,网上说是gcc版本问题.我用 configure make make install安装完 gcc-
3.4.5后 ,用 gcc-v命令查看gcc版本已经是 3.4.5可是用 arm-linux-gcc -v查看 gcc版本还是4.3.2.
请问高手们,我是不还要链接一下.具体步骤是什么 .谢谢各位!!!
我出现的错误是,是不是应该把gcc版本降到 3.4.5
arch/arm/mm/alignment.c: in function 'proc_alignment_write':
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/......
-----------------------------------------------------------------------

1、你的标题是错误的,你在自己不知道错误原因是什么的情况下,贸然推定是gcc版本问题,使得楼下多位受到误导
2、configure 是什么?linux-2.6.14.1是官方的吗?你整个步骤是怎样的?你都没有描述

j491424570 发表于 2010-10-19 14:59:53

回复【13楼】Cliff
-----------------------------------------------------------------------
linux-2.6.14.1是从这个网站下载的 http://ftp.kernel.org/pub/linux/kernel/v2.6/
应该算官方吧?
我说的configure是指我重新安装了gcc-3.4.5,但是查看arm-linux-gcc版本看到里面使用的还是gcc-4.3.2

Cliff 发表于 2010-10-19 15:24:46

那你内核准备编译ARM内核咯?
首先内核要配置啊,我还以为你说的configure是配置内核呢?
然后,make的时候,加上 CROSS_COMPILE=arm-linux-
最后,如果有问题,可以 make 时候加上参数 V=1 就会输出详细的编译信息

j491424570 发表于 2010-10-19 17:11:32

我在编译内核,现在在make zImage过程中出问题了,问题应该是gcc版本太高了。于是我就安装了低版本到gcc-3.4.5。gcc-3.4.5安装好了!但交叉编译环境还在使用那个高版本的gcc而没有用我新安装的gcc-3.4.5。怎么才能改变交叉编译环境使用的gcc版本

Cliff 发表于 2010-10-20 10:17:14

回复【16楼】j491424570
我在编译内核,现在在make zimage过程中出问题了,问题应该是gcc版本太高了。于是我就安装了低版本到gcc-3.4.5。gcc-3.4.5安装好了!但交叉编译环境还在使用那个高版本的gcc而没有用我新安装的gcc-3.4.5。怎么才能改变交叉编译环境使用的gcc版本
-----------------------------------------------------------------------

你既没有描述你的步骤,也没参考我的步骤
建议你从 tar xjvf linux-2.6.xx.tar.bz2 开始的命令,都记录下来,这样才能说你哪步错了

zhuifenga 发表于 2011-5-16 09:31:44

回复【16楼】j491424570
-----------------------------------------------------------------------

楼主你还没搞清楚。在UNIX中都是高版本兼容低版本的。你用gcc -v命令查看的是你的宿主机使用的GCC的版本,而用arm-linux-gcc -v查看的是交叉编译环境使用的gcc的版本,也就是在宿主机的环境下编译内核使之能适用于你的ARM平台。正常配置情况应该是gcc版本应该高于arm-linux-gcc版本,否则编译通不过。
页: [1]
查看完整版本: arm-linux-gcc 如何更新gcc版本