zoukankan      html  css  js  c++  java
  • [国嵌笔记][016][交叉工具链]

    交叉工具链

    1.交叉工具是编译在arm平台上运行程序的工具,交叉工具链是交叉工具的集合

    2.file filename    

    通过file命令可以查看程序运行的平台等相关信息

    3.交叉开发    

    1.在x86平台上产生其他平台上运行程序的模式叫做交叉开发  

    2.宿主机是产生嵌入式软件的平台,目标机是运行嵌入式软件的平台

    常用的交叉工具

    1.交叉编译器  

    arm-linux-gcc  

    相同之处

    arm-linux-gcc file.c -o file

    与gcc用法上一样  

    不同之处   

    gcc从 /usr/include/ 下寻找头文件   

    arm-linux-gcc从 /usr/loacl/arm/.../lib 下寻找头文件   

    arm-linux-gcc -print-search-dirs   查看头文件路径,通过--help可以找到这个选项

    2.交叉链接器  

    arm-linux-ld -Tfile.lds file1.o file2.o... -o file.elf  

    把file1.o file2.o和file.lds链接成led.elf文件

    3.交叉ELF读取器  

    1.arm-linux-readelf -a file.elf   

    在输出信息的Data中可以看到运行的大小端模式,Machine中可以看到运行的处理器  

    2.arm-linux-readelf -d file.elf   

    可以查看程序运行的动态运行库信息  

    3.一般程序运行不了,可以通过file查看程序的处理器和大小端,readelf -a 查看程序的处理器和大小端,readelf -d 查看程序的动态运行库信息

    4.交叉反汇编器  

    1.arm-linux-objdump -D -S file >dump   

    把反汇编file文件信息输入到dump中保存  

    2.arm-linux-gcc -g file.c -o file   

    可以在反汇编代码时中加入C语言的信息,方便阅读代码

    5.交叉转换器  

    1.arm-linux-objcopy -O binary file.elf file.bin   

    "-O binary"表示输出的是二进制格式,把输入文件file.elf转换成file.bin输出  

    2.通过arm-linux-gcc生成的程序都是elf格式的程序,不能直接在arm处理器上运行。在Linux系统有elf转换器,可以把elf格式文件转换成二进制文件运行。所以要直接在arm处理器上运行需要把elf格式转换成二进制格式

  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/d442130165/p/4885824.html
Copyright © 2011-2022 走看看