博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交叉工具链和makefile
阅读量:5131 次
发布时间:2019-06-13

本文共 1256 字,大约阅读时间需要 4 分钟。

交叉工具链:

arm-linux-gcc:交叉编译器

arm-linux-ld:交叉连接器

arm-linux-readelf:交叉ELF文件工具

arm-linux-objdump:交叉反汇编器

arm-linux-objcopy:交叉转换器

-a 是显示该文件的信息

-O bfdname 输出的格式

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

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

-S 尽可能反汇编出源代码

-D 显示文件中所有汇编信息,反汇编

-c 只编译不链接  

-g 附加调试信息:C和汇编能对应起来

-T跟上链接器脚本文件          可参考这篇博客:http://man.linuxde.net/objdump

arm-linux-readelf -d hello 查看这个应用程序需要那些库

file 这个文件,可以看到这个文件在什么平台上运行(x86或者ARM等等)

arm-linux-objdump:反汇编工具

arm-linux-objcopy -O binary led.elf led.bin:-O是指定输出什么格式的文件,是binary(二进制),后面跟上输入文件和输出文件

 

makefile:make工作主要依赖于一个叫做Makefile的文件,这个文件描述了整个程序的编译、连接等规则。其中包括:那些源文件需要编译以及如何编译,如何最后产生我们想要的执行文件。

目标:依赖

  命令

 

all: led.o

  arm-linux-ld -Tled.lds -o led.elf led.o
  arm-linux-objcopy -O binary led.elf led.bin
led.o : led.S
  arm-linux-gcc -g -o led.o -c led.S
.PHONY: clean
clean:
  rm *.o led.elf led.bin

 

make 后面跟 你想要的那个文件,就会去执行makefile里的只生成你需要文件的命令

make后面不接,就执行makefile里的第一条命令,所以称第一条规则里的就是最终目标

 

去回显

make -f file

 

all: start.o main.o mmu.o led.o button.o interrupt.o

  arm-linux-ld -Tgboot.lds -o gboot.elf $^
  arm-linux-objcopy -O binary gboot.elf gboot.bin
%.o : %.S
  arm-linux-gcc -g -c $^
%.o : %.c
  arm-linux-gcc -g -c $^
.PHONY: clean
clean:
  rm *.o *.elf *.bin

 

转载于:https://www.cnblogs.com/sanshijvshi/p/8312905.html

你可能感兴趣的文章
485通信的电路小问题
查看>>
js判重
查看>>
python 脚本运行时报错: AttributeError: 'module' object has no attribute ***
查看>>
mac os 10.10.4 上安装mysql5.6.26
查看>>
全面保护网速 瑞星路由安全卫士让你向弹窗卡顿说不!
查看>>
读后感
查看>>
2019春第九周作业
查看>>
Facebook币Libra学习-2.交易生命周期
查看>>
leetcode--Triangle
查看>>
js 类数组转化数组
查看>>
数据库如何部署上线阅读总结
查看>>
linux下文件权限的介绍
查看>>
前端之Bootstrap
查看>>
SharePoint 2010 Logging Improvements
查看>>
最近在做淘宝客
查看>>
Shell脚本获取C语言可执行程序返回值
查看>>
ASCII 32个控制字符含义
查看>>
zoj2589
查看>>
tensorflow TypeError: Can not convert a float32 into a Tensor or Operation
查看>>
node.js初识11
查看>>