跟着iMX28x开发套件学linux-02

二、安装交叉编译环境

NFS配置好了之后就要进行linux应用学习了。要了解到Ubuntu是在x86运行程序的,而开发板却是在arm运行程序的。也就是说在Ubuntu上用gcc编译的程序无法在开发板上运行。而且开发板上资源不足,不能在开发板安装交叉编译环境。那就只能在Ubuntu上安装交叉编译环境,写好的代码用交叉编译指令编译好之后再通过NFS发送到开发板运行。

将店家提供的交叉编译环境压缩包复制到Ubuntu

方法有多种,这里介绍三种,我选用第一种,因为不用再安装其他软件。

1) 开发板出厂固件是可以挂载tf卡的,可以先把压缩包从windows复制到tf卡,然后把tf卡插入开发板,在挂载了tf卡后,利用NFS将tf卡中的文件传送到Ubuntu。其实也可以用ssh file把Windows上的压缩包直接发送到开发板内存卡上,然后通过NFS传送到Ubuntu。

2) Ubuntu中安装vmtools,然后直接用复制粘贴,从Windows中复制压缩包到Ubuntu。

3) Ubuntu中安装ftp服务,配置ftp为匿名访客,然后在Windows通过ftp登录到Ubuntu的指定目录,复制压缩包到这个目录。

解压压缩包(以下命令在Ubuntu上运行)

1) 将压缩包复制到/opt目录,当然其他目录也可以。

2) Tar -xjvf 压缩包名 : 把交叉编译环境解压到当前目录。

添加环境变量(以下命令在Ubuntu上运行)

扫描二维码关注公众号,回复: 3929304 查看本文章

这一步其实纯粹是为了方便而已,直接运行交叉编译环境内/bin目录下的文件来进行交叉编译就行了, 但是每次都输入那么长一段/bin目录路径太麻烦了,添加了环境变量之后,再次进行交叉编译就不用 输入/bin目录路径了。添加环境变量的方式有:所有用户永久,仅当前用户永久,所有用户临时。我 用的是所有用户临时方式,就是每次crtl+alt+t打开新的终端都要添加一次环境变量。

1) sudo export PATH=$PATH:bin目录的完整路径 : 这是把bin目录完整路径添加到PATH变量的末尾的意思。可以用echo $PATH查看PATH变量是否被正确添加。

测试(以下命令在Ubuntu上运行)

1) arm-fsl-linux-gnueabi- : 按两次tab键,如果出现了许多备选命令就意味着全局变量添加成功,否则仔细查看添加全局变量的操作是不是错了。

2) arm-fsl-linux-gnueabi-gcc : 如果出现没有输入文件(no input file)提示,就说明交叉编译器可以使用了。但是如果出现了找不到路径,则是交叉编译器出现问题。如果前面步骤不出错,那就应该是64位的Ubuntu不支持32位的交叉编译器,需要安装32位兼容包,安装步骤看3)。

3) sudo apt-get install lib32z1

 sudo apt-get install lib32z1-dev

 sudo apt-get install libgtk2.0-0:i386 libxxf86vm1:i386 libsm6:i386 lib32stdc++6

店家提供的开发指南只是一句,安装ia32-libs,但是Ubuntu 14.0.4就已经移除了这个兼容包, 要用上面三个指令去安装代替ia32-libs的包。

4) 重复2),如果提示没有输入文件则交叉编译器安装成功。

 

交叉编译环境配置好了,可以自己写个hello world程序,用交叉编译器编译,然后通过NFS发送到开发板去运行看看能不能成功,开到putty上面显示出hello world的时候还是很开心的。

猜你喜欢

转载自www.cnblogs.com/liangda/p/9905030.html
今日推荐