前置作業:
- 安裝相關開發套件
#sudo apt-get install build-essential bison flex texinfo
- 手動更改gcc版本
- 由於gcc存在著兼容性的問題,所以部分程式可能需要使用指定版本的gcc才能編譯通過。在編譯ARM Toolchain嘗試過程中, 我使用 gcc-4.1.0 版本才得以順利通過編譯。
- 先查看目前gcc版本,通常為 gcc-4.3.2 版本,若已為 gcc-4.1.0 版本即可跳過此步驟。
- 觀看系統已安裝之所有 gcc 版本,此時會發現系統已安裝 gcc-4.3.2 之版本。
- 利用update-alternatives工具來改變gcc鏈結,先增加 gcc-4.3.2 與 gcc-4.1.0 兩版本選項。
- 切換預設 gcc 版本到 gcc-4.1.0,然後鍵入所需要的版本的相對應數字,最後再確定一次目前 gcc 版本即完成。
#gcc --version
#ls /usr/bin/gcc* -l
#update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 40
#update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 30
#update-alternatives --config gcc#gcc --version
- 開始進行 ARM Toolchain 安裝步驟
- 先設定欲安裝相關套件之版本,與安裝參數以減少命令長度
- Install binutils-2.19.1
- Install gcc-4.1.0 (上) 先只針對 gcc 的部分編譯安裝
- Install newlib-1.17.0
- Install gcc-4.1.0 (下) 返回原 build_gcc 目錄下,完整編譯 gcc
- Install gdb-6.8
- 將ARM Toolchain路徑永久加入環境變數
#export TARGET=arm-elf #export PREFIX=/usr/src/esd/toolchain // Install location of your final toolchain (記得先建立此資料夾) #export PATH="$PATH:$PREFIX/bin" #export BINUTILS=binutils-2.19.1 #export GCC=gcc-4.1.0 #export NEWLIB=newlib-1.17.0 #export GDB=gdb-6.8
#tar xfvj $BINUTILS.tar.bz2
#mkdir build_binutils
#cd build_binutils
#../$BINUTILS/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib
#make all
#make install
#wget -c ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2
#tar xfvj $GCC.tar.bz2 #mkdir build_gcc
#cd build_gcc
#../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --enable-languages=c,c++ --with-newlib --with-headers=/balabala/newlib-1.17.0/newlib/libc/include(--with-headers即指向newlib-1.17.0解壓縮後所置放的位置)
#make all-gcc
#make install-gcc
#wget -c ftp://sources.redhat.com/pub/newlib/$NEWLIB.tar.gz
#tar xfvz $NEWLIB.tar.gz #mkdir build_newlib
#cd build_newlib
#../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib
#make
#make install
#cd build_gcc
#make all install
#wget -c ftp://ftp.gnu.org/gnu/gdb/$GDB.tar.bz2
#tar xfvj $GDB.tar.bz2
#mkdir build_gdb
#cd build_gdb
#../$GDB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib
#make
#make install
#vim /etc/environment把ARM Toolchain TARGET安裝路徑加入最後一個之前,例如下所示:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/src/esd/toolchain/bin"
存檔離開(登出後再登入即生效)
--- 大功告成 ----