zoukankan      html  css  js  c++  java
  • 2016.4.5 关于交叉编译工具链的使用及makefile的编写

    1、常用的交叉编译工具使用实例:

    现有文件:源文件led.S及连接器脚本文件led.lds

    i、arm-linux-gcc -g -c led.S -o led.o

    -g选项告诉编译器添加调试用的信息。

    -c告诉编译器只编译生成.o文件为止

    ii、arm-linux-ld -Tled.lds -o led.elf led.o

    -Tled.lds:链接器脚本文件选项

    iii、arm-linux-readelf  -a led.elf

         arm-linux-readelf  -d led.elf

    -a:显示出全部信息

    -d:dynamically linked libs查看库

    iv、arm-linux-objdump -D -S led >dump

    将反汇编之后的文件保存在一个名为dump的文件中,建议在反汇编之前的编译时生成调试信息,即加入-g选项。

    v、arm-linux-objcopy -O binary led.elf led.bin

    将生成的。elf文件转换成.bin文件,因为只有二进制文件才能在我们的目标机上运行。

    2、上述一整套流程,可以用以个makefile来写:

    eg:

    led.bin:led.elf

    [TAB] arm-linux-objcopy -O binary led.elf led.bin

    led.elf:led.o led.lds

    [TAB]arm-linux-ld -Tled.lds -o led.elf led.o

    led.o:led.S

    [TAB]arm-linux-gcc -g -c led.S -o led.o

    clean:

    [TAB]rm led.bin led.elf led.o

    一定要注意格式,命令前面不能用空格,用的是换行TAB键。

  • 相关阅读:
    linux下mysql的安装
    linux下mysql设置主从
    linux下安装jdk8并且配置环境变量
    C#实现rabbitmq 延迟队列功能
    对angular.js的一点理解
    angular.js的路由和模板在asp.net mvc 中的使用
    通过Web Api 和 Angular.js 构建单页面的web 程序
    Orchard运用
    Orchard运用
    Orchard运用
  • 原文地址:https://www.cnblogs.com/wan0807/p/5355812.html
Copyright © 2011-2022 走看看