交叉编译工具及 makefile工程管理工具

1、交叉连接工具

      是指在A平台编译出B平台上的程序。

      交叉编译器:        arm-linux-gcc  -static hello.c -o hello         查看头文件:arm-linux-gcc -print -search -dirs 

      交叉链接工具:    arm-linux-ld  -Tled.lds -o led.elf led.o        T参数指定链接脚本

      交叉elf文件工具:arm-linux-readelf  -D -S hello >dump.txt   arm-linux-readelf -d 查看库文件    file 查看文件属性

      交叉反汇编器:    arm-linux-objdump  -D -S hello >deump

      交叉转换器:        arm-linux-objcopy   -O binary  led.elf  led.bin

2、交叉连接器脚本

     >使用/*注释*/

     >使用TAB键缩进

     例子:XX.lds

      /*段、起始连接地址、对齐设置、使用变量、设置代码端段首文件(程序入口)*/

     SECTIONS{

                   .=0X00;   /*设置其实链接地址*/

                   .text:

                    {

                     start.o(.text)   /*设置代码段首文件,一般将代码段第一行作为入口地址*/

                    *(.text)   /**指所有代码段*/                     

                     }

                   .=ALIGN(4)   /*设置对其方式*/

                   .data:    /*数据段*/

                   {

                    *(.data)

                   }

                   .=ALIGN(4)

                  bss_start=.;/*使用变量,将变量设置为当前地址*/

                   .bss:   /*未初始化全局变量*/

                   {

                     *(.bss)

                   }

                  bss_end=.;

                /*bss段大小:bss_max=bss_end-bss_start*/

      }

3、make工具

      使用make工具和makefile脚本。

      makefile脚本:

      >规则:

         目标:依赖

         【TAB键】命令

         led.o:led.s

                   arm-linux-gcc -g -o led.o led.s

       >伪目标

        .PHONY 目标  /*为目标标示*/

         目标: /*没有依赖*/

                  命令

       >最终目标

        第一个规则的目标

       >使用变量

          obj=led.s

         例子:

         led.o:$(obj)

                      arm-linux-gcc -g -o led.o $(obj)

         >常用变量

            $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件

            led.o:led.s

                      arm-linux-gcc -g -o $@ $<

         >%使用:对于命令相同的规则可以“叠”起来

           %.o:%.s

                       arm-linux-gcc -g -o $@ $<

         >指定脚本

                    make -f exmple.lds  hello

           

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值