• 【嵌入式】arm-linux-gcc/ld/objcopy/objdump参数概述


    arm-linux-gcc

      -o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
     
      -Wall 指定产生全部的警告信息
     
      -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高
     
      -c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或 .cc 变成 .o 的目标文件
     
      -S 只激活预处理和编译,就是指把文件编译成为汇编代码
     

    arm-linux-ld

      直接指定代码段,数据段,BSS段的起始地址
    -Ttest startaddr
    
    -Tdata startaddr
    
    -Tbss startaddr 

      示例:

    Arm-linux-ld –Ttext 0x0000000 –g led.o –o led_elf

      使用连接脚本设置地址:  

    Arm-linux-ld –Ttimer.lds –o timer_elf  

      其中timer.lds 为连接脚本

      完整的连接脚本格式:

    SECTIONS
    {
        …
    
        Secname start ALING(aling) (NOLOAD):AT(ldaddr)
    
        {contents} > region:phdr=fill
    
        …..
    
    }

     


    arm-linux-objcopy

      被用来复制一个目标文件的内容到另一个文件中,可用于不同源文件的之间的格式转换

      示例:

    Arm-linux-objcopy –o binary –S elf_file bin_file 

      常用的选项:

      input-file , outflie

      输入和输出文件,如果没有outfile,则输出文件名为输入文件名

       -l bfdname—input-target=bfdname

      用来指明源文件的格式,bfdnameBFD库中描述的标准格式名,如果没指明,arm-linux-objcopy自己分析

      -O bfdname 输出的格式

      -F bfdname 同时指明源文件,目的文件的格式

      -R sectionname 从输出文件中删除掉所有名为sectionname的段

      -S 不从源文件中复制重定位信息和符号信息到目标文件中

      -g 不从源文件中复制调试符号到目标文件中


    arm-linux-objdump

      查看目标文件(.o文件)和库文件(.a文件)信息
    arm-linux-objdump -D -m arm led_elf > led.dis 
      -D 显示文件中所有汇编信息
  • 相关阅读:
    给花花看的链接
    Arguments Optional闭包
    对闭包最好的解释
    Everything Be True判断对象是否存在指定的属性且有值
    Binary Agents将二进制句子翻译成英文
    伤情鉴定和伤残鉴定
    Steamroller 数组扁平化处理
    Drop it
    2021年flag-300+道算法~~~
    微服务之玉麟宝典,呕心沥血的日常
  • 原文地址:https://www.cnblogs.com/lcw/p/3209330.html
Copyright © 2020-2023  润新知