#LaoWu learns to Embedded#交叉编译环境

这个周末都在弄交叉编译,就是想把一个 helloworld 丢到6410上运行起来,就这么一个简单的目标,搞了快2天,出个各种各样问题。

首先说明一下交叉编译的意思:

win 7 ------  ubuntu 12.04(虚拟机) ----- 6410

win7和ubunt都是X86体系结构下的,6410是arm体系结构下的。

但我们不在6410下直接敲代码编译,而是在ubuntu下编程编译,所以在x86体系结构下编译arm体系结构下可运行程序,就是“交叉”编译。

然后是文件在三个系统下的传输:win7和ubuntu虚拟机用的是共享windows文件夹,因为对设置win7共享文件夹不熟,ubuntu10.10 ubuntu12.04一直连不到win7“共享了的”文件夹,最后发现问题的是没有取消win7共享文件夹的密码验证:“控制面板”->“网络和Internet”->“网络和共享中心”->“更改高级共享设置”->“密码保护的共享”->“密码保护的共享”。

    其实win7和ubuntu虚拟机的文件传输也可以通过secureCRT的sftp来进行,稍微麻烦下不比共享文件夹的直接拖拽。

ubuntu虚拟机到6410是用nfs,本次操作还未处理到,下次折腾nfs。

win7到6410文件传输可以通过secureCRT可以通过ZModem,速度是慢点,但是传输编译好的arm可执行文件绰绰有余了。

部署交叉编译环境:

ubuntu 12.04交叉编译器(arm-linux-gcc-4.5.1)

Step1: 将 光 盘 Linux 目录中的 arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 复制到 ubuntu
某个目录下如 tmp/,然后进入到该目录,执行解压命令:
#cd /tmp
#tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz  –C /

注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,
在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc 安装到/opt/FriendlyARM/toolschain/4.5.1 目录。

Step2:把编译器路径加入系统环境变量,运行命令
#gedit /root/.bashrc
编辑/root/.bashrc 文件,注意“bashrc”前面有一个“.” ,修改最后一行为 export
PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin,注意路径一定要写对,否则将不会有
效。 保存退出。

重新登录系统(不必重启机器,开始->logout 即可),使以上设置生效,在命令行输入
arm-linux-gcc –v,会出现如下信息,这说明交叉编译环境已经成功安装。

 

然后就可以在ubuntu下交叉编译程序,把编译好的可执行文件传输到6410,chmod然后执行,6410显示"Hello World"。

成功!

 

 

 

 

 

posted @ 2013-03-17 18:20  materazzi  阅读(217)  评论(0编辑  收藏  举报