jasmine214--love

只有当你的内心总是充满快乐、美好的愿望和宁静时,你才能拥有强壮的体魄和明朗、快乐或者宁静的面容。
posts - 731, comments - 60, trackbacks - 0, articles - 0

arm-linux-gcc交叉编译环境

Posted on 2010-11-25 15:09 幻海蓝梦 阅读(2160) 评论(0)  编辑  收藏 所属分类: Linux

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


只有注册用户登录后才能发表评论。


网站导航: