1. 程式人生 > >redhat-linux的gcc安裝詳解---阿冬收集

redhat-linux的gcc安裝詳解---阿冬收集

在嵌入式開發中我們經常會用到arm-linux-gcc來編譯我們的應用程式。作為arm-linux-gcc的入門,我們先看看如何安裝arm-linux-gcc。

安裝arm-linux-gcc還是比較簡單的,我們看看Redhat9.0下的安裝步驟吧。

1、將arm-linux-gcc的壓縮包arm-linux-gcc-2.95.3.tar.gz解壓縮;

2、將路徑usr/local下的arm目錄拷貝到你自己系統的/usr/local下;

3、vi /etc/profile;在出現pathmunge 的語句段後新增pathmunge /usr/local/arm/2.95.3(版本號)/bin;


4、儲存對profile的修改後,執行source /etc/profile就OK了

之後你就可以用arm-linux-gcc來編譯你的程式了,你也可以嘗試一下喲。


arm-linux-gcc3.4.4交叉編譯製作筆記
2008-08-17 16:48

1. Linux下工作使用者及環境

Linux version 2.6.9-22.EL ([email protected]) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 Mon Sep 19 18:20:28 EDT 2005

2. 設定環境變數,準備原始碼及相關補丁

2.1 設定環境變數

[[email protected] ~]$ vi ~/.bashrc
export PATH=$PATH:/usr/local/arm/3.4.4/bin
【注意】如果你已經安裝過arm-linux-gcc,並且已經加入了環境變數中,將其從環境中去掉保證root使用者和xxxx使用者環境中沒有arm-linux-gcc

[[email protected] ~]$ mkdir ctools
將準備好的原始碼及補丁存放在資料夾ctools中。

2.2 準備原始碼包
2.2.1 binutils 名稱:binutils-2.16.tar.gz

下載地址:http://ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz

2.2.2 gcc 名稱: gcc-3.4.4.tar.bz2
下載地址: http://ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2

2.2.3 glibc 名稱: glibc-2.3.5.tar.gz和glibc-linuxthreads-2.3.5.tar.gz
下載地址: http://ftp.gnu.org/gnu/glibc/glibc-2.3.5.tar.gz
http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.5.tar.gz

2.2.4 linux kernel 名稱: linux-2.6.14.1.tar.bz2
下載地址: http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.1.tar.bz2

2.2.5 gdb 名稱: gdb-6.4.tar.gz
下載地址: http://ftp.gnu.org/pub/gnu/gdb/gdb-6.4.tar.gz

2.3 準備補丁
2.3.1 ioperm.c.diff
作用: 打修正ioperm()函式
下載地址: http://frank.harvard.edu/~coldwell/toolchain/ioperm.c.diff

2.3.2 flow.c.diff
作用: 修改gcc一處bug
下載地址: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.32.3.3 t-linux.diff

作用: 該補丁用於產生crti.o和crtn.o檔案.
下載地址: http://frank.harvard.edu/~coldwell/toolchain/t-linux.diff

2.4 編譯GNU binutils
[[email protected] ~]$ cd ctools
[[email protected] ctools]$ mkdir BUILD
[[email protected] ctools]$ tree -L 1
|-- BUILD
|-- binutils-2.16
|-- binutils-2.16.tar.gz
|-- flow.c.diff
|-- gcc-3.4.4
|-- gcc-3.4.4.tar.bz2
|-- gdb-6.4.tar.gz
|-- glibc-2.3.5
|-- glibc-2.3.5.tar.gz
|-- glibc-linuxthreads-2.3.5.tar.gz
|-- ioperm.c.diff
|-- linux-2.6.14.1.tar.bz2
`-- t-linux.diff

[[email protected] ctools]$ tar zxvf binutils-2.16.tar.gz
[[email protected] ctools]$ mkdir -p BUILD/binutils-2.16
[[email protected] ctools]$ cd BUILD/binutils-2.16
[[email protected] binutils-2.16]$ ../../binutils-2.16/configure --prefix=/usr/local/arm/3.4.4 --target=arm-linux --with-sysroot=/usr/local/arm/3.4.4/sysroot
[[email protected] binutils-2.16]$ make
[[email protected] binutils-2.16]$ su -m
[[email protected] binutils-2.16]# make install
[[email protected] binutils-2.16]# exit
[[email protected] binutils-2.16]$

2.5 準備核心標頭檔案
2.5.1 使用當前平臺的gcc編譯核心標頭檔案
[[email protected] binutils-2.16]$ cd ../../
[[email protected] ctools]$
[[email protected] ctools]$ tar jxvf ../btools/tchain3.4.4/linux-2.6.14.1.tar.bz2
[[email protected] ctools]$ cd linux-2.6.14.1/
[[email protected] linux-2.6.14.1]$ cp arch/arm/configs/smdk2410_defconfig .config

選擇了一個配置檔案smdk2410_defconfig,你可以根據你的需要選擇
[[email protected] linux-2.6.14.1]$ make ARCH=arm menuconfig
 System Type --->  
 ARM system type (Samsung S3C2410) ---> 
 S3C24XX Implementations --->  
 [ ] Simtec Electronics ANUBIS 
 [ ] Simtec Electronics BAST (EB2410ITX) 
 [ ] IPAQ H1940