1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下。
arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下:
http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
2.解压 arm-linux-gcc-3.4.1.tar.bz2
#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下
# cd usr/local/
#cp -rv arm /usr/local/
现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了
3. 修改环境变量,把交叉编译器的路径加入到PATH。大连主机托管.(有三种方法,强烈推荐使用方法一)
方法一:修改/etc/bash.bashrc文件
#vim /etc/bash.bashrc
在最后加上:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
export PATH
(如果不能编辑,先修改相关文件的权限使用chmod命令。)
方法二:修改/etc/profile文件:
# vim /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin
注:(这只能在当前的终端下才是有效的!)
4. 立即使新的环境变量生效,不用重启电脑:
对应方法一:#source /root/.bashrc
对应方法二:# source /etc/profile
5. 检查是否将路径加入到PATH:
# echo $PATH
显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。
6.测试是否安装成功
# arm-linux-gcc -v
上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息:
Reading specs from
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
Configured with:
/work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-
3.4.1/configure –target=arm-linux –host=i686-host_pc-linux-gnu
–prefix=/usr/local/arm/3.4.1 –with-headers=/usr/local/arm/3.4.1/arm
-linux/include –with-local-prefix=/usr/local/arm/3.4.1/arm-linux
–disable
-nls –enable-threads=posix –enable-symvers=gnu –enable-__cxa_atexit
–enable- languages=c,c++ –enable-shared –enable-c99 –enable-long-long
Thread model: posix
gcc version 3.4.1
7.编译Hello World程序,测试交叉工具链
写下下面的Hello World程序,保存为 hello.c
#include
int main()
{
printf(”Hello World!\n”);
return 0;
}
执行下面的命令:
# arm-linux-gcc -o hello hello.c
源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!
接着可以输入file
hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。
ubuntu 10.04 建立交叉编译环境 arm-linux-gcc-4.3.2
建立交叉编译环境arm-linux-gcc-4.3.2。
1. 将友善科技光盘的arm-linux-gcc-4.3.2.tgz复制到任意路径下;
2. 确保安装了标准C开发环境,一句命令搞定:sudo apt-get install build-essential
libncurses5-dev;
3.在终端进入arm-linux-gcc-4.3.2.tgz存放目录,再sudo tar -zxvf
arm-linux-gcc-4.3.2.tgz -C /(注意大写C字母后留一个空格,这样会自动解压缩到/usr/local/4.3.2目录下)
修改环境变量,使交叉编译环境生效。我是执行如下命令:
yagerya@yagerya-desktop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
yagerya@yagerya-desktop:~$ sudo gedit /etc/environment
原文件应为PATH=”/usr/local/sbin:/usr/local/bin:/usr
/sbin:/usr/bin:/sbin:/bin:
/usr/games“将其改为PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin”保存退出即可。然后注销重新登录就可使环境变量生效
了。
我不推荐大家这样做,我试过了在编译内核时无论执行sudo -s后,再执行arm-linux-gcc -v也没有出现环境变量的信息,故cd
/opt/FriendlyARM/mini2440后,无论make zImage或sudo make zImage
都出现无法再到arm-linux的情况!
所以我推荐大家这样做:
yagerya@yagerya-desktop:~$ vim ~/.profile
在这个文件最后添加上自己的环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin
然后在终端执行source ~/.profile ,即可立即生效。
yagerya@yagerya-desktop:~$ arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with:
/scratch/julian/lite-respin/linux/src/gcc-4.3/configure
–build=i686-pc-linux-gnu –host=i686-pc-linux-gnu
–target=arm-none-linux-gnueabi –enable-threads –disable-libmudflap
–disable-libssp –disable-libstdcxx-pch –with-gnu-as –with-gnu-ld
–enable-languages=c,c++ –enable-shared –enable-symvers=gnu
–enable-__cxa_atexit –with-pkgversion=’Sourcery G++ Lite 2008q3-72′
–with-bugurl=https://support.codesourcery.com/GNUToolchain/ –disable-nls
–prefix=/opt/codesourcery
–with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc
–with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc
–with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr
–with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr
–disable-libgomp –enable-poison-system-directories
–with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
–with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
yagerya@yagerya-desktop:~$
4.编译内核,切到root 帐户编译kernel: sudo passwd root 后,设置root密码,后su -切换到root,
然后参考友善之臂的user manuals 一步步make zImage开始编译。
原文: http://www.5a5z.com/?p=236