查看: 3720|回复: 0

电鱼派试用日记5:Ubuntu下配置交叉编译器

[复制链接]
  • TA的每日心情

    2017-3-19 23:08
  • 签到天数: 59 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2017-1-3 21:08:09 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 Adrain_shine_3005336 于 2017-3-19 23:35 编辑

         要进行基于Linux系统进行嵌入式开发,首先需要安装交叉编译器。如何在宿主机编译程序,然后传到ARM开发板上运行,即交叉编译。 在PC上,用gcc编译生成的程序,在ARM是不能运行的,因为ARM上运行的二进制机器码是基于ARM指令集的,而GCC在PC编译出来的是基于X86的指令集,自然ARM上不能运行。要使得PC上编译出的程序在ARM上可以运行,则需要在PC上安装交叉编译器。使用交叉编译链arm-Linux-gcc对程序进行编译。交叉编译链运行在宿主机上,这里使用的是ubuntu14.04的笔记本电脑。

         交叉编译之前,首先需要安装交叉工具链,电鱼派的交叉工具链可以在提供的百度云盘中获得。使用如下步骤:


    1  下载交叉工具链:arm-linux-gcc-4.6.1-dianyu.tar.gz


    jiacha.png
    2 解压工具链:目录可以任意指定但是需要在后面的环境变量中设置
    dian1.png
    dian2.png

    3 添加环境变量:在/root/.bashrc中添加工具链所在目录

    dian3.png
    将交叉编译器的bin目录加入到环境变量中,只需要将该绝对路径加入到.bashrc中最后一行:
    export PATH=$PATH:/dianyupai/arm-linux-gcc-4.6.1-dianyu/bin
    dian4.png
    在终端键入source /root/.bashrc 或者重新启动Unbuntu 使得刚才的设置的环境变量生效

    4 查看是否设置成功:终端键入 arm-none-linux-gnueabi-gcc -v
    如果出现:bash:no **********such file or  dictionary之类的话,如下图所示:



    主要是因为安装GCC4.7之前的版本的话,64位的系统一定要安装32位的库
    终端输入命令:sudo apt-get install ia32-libs
    完成之后可以查看版本:
    dian5.png

    5 测试HelloWord 查看:


    用gedit编写一个Hello.c 文件
    dian6.png

    • 编译器 : arm-none-linux-gnueabi-gcc 和gcc用法一样
      如:arm-none-linux-gnueabi-gcc hello.c -o hello
      反编译工具:arm-none-linux-gnueabi-gcc
      如:arm-none-linux-gnueabi-gcc -D -S hello
      生成汇编代码
      ELF文件查看工具:arm-linux-readelf
      如:arm-linux-readelf -a hello 全部信息 -d hello查看hello使用的动态库等。

    工具准备好之后,开始在宿主机进行程序编译,写一个hello.c文件,用arm-linux-gcc进行编译,生成hello文件。下一步就是将该hello文件传到ARM板上运行。
    dian7.png
    6 通过NFS(网络文件系统)在PC和ARM之间进行挂载PC上的共享目录为/home/tong/Work,将编译后的hello文件拷贝到共享目录,在ARM终端上使用mount命令挂载PC的共享目录到ARM开发板上的/mnt 下。过程如下图所示:

    1.PNG


    整个交叉编译环境就搭建好了,这个是编写各种电鱼派应用程序以及内核驱动程序的基础,后面就可以畅游在电鱼派的海洋啦。。。。。。。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-16 13:06 , Processed in 0.117599 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.