简单说明Makefile使用方法

1、创建Makefile

vi Makefile

all:
	arm-linux-gcc -c led_on.s  -o led_on.o
	arm-linux-ld  -Ttext 0 led_on.o -o led_on.elf
	arm-linux-objcopy -O binary -S led_on.elf led_on.bin
	arm-linux-objdump -D led_on.elf > led_on.dis
clean:
	rm *.o *.elf *.bin *.dis

注意:命令行前必须加TAB键

2、编译链的使用说明

1) arm-linux-gcc 编译选项

  • -c 只编译并生成目标文件。
  • -o 生成指定的输出文件。用在生成可执行文件时。
  • -E 只运行C预编译器。
  • -O0 不进行优化处理。
  • -O或-O1 优化生成代码。
  • -O2 进一步优化。
  • -O3 比-O2更进一步优化,包括inline函数。
  • -shared 生成共享目标文件。通常用在建立共享库时。
  • -static 禁止使用共享连接。
  • -w 不生成任何警告信息。
  • -Wall 生成所有警告信息。

2)arm-linux-ld连接选项

它是一个连接成序工具,其作用主要是将汇编过的多个二进制文件进行链接,成为一个可执行的二进制文件。

  • -T File 指定一个链接脚本文件,指示编译器按照脚本进行链接。
  • -Tbss ADDRESS bss段的链接地址;
  • -Ttext ADDRESS 代码段的链接地址;
  • -Tdata ADDRESS 数据段的链接地址;
  • -o FILE 设置输出文件名;

3)arm-linux-objcopy

它被用来复制一个目标文件的内容到另一个文件中.此工具可以进行格式的转换.在实际编程的,用的最多的就是将ELF格式的可执行文件转换为二进制文件.

  • -O bfdname 使用指定格式来输出文件,bfdname是BFD库中描述的标准格式名。
  • -S 不从源文件中复制重定位信息和符号信息到目标文件中;
  • -g 不从源文件中复制调试符号到目标文件中;
  • -F bfdname 同时指明源文件,目的文件的格式;

4)arm-linux-objdump

它常用来显示二进制文件信息,常用来查看反汇编代码

  • -D 反汇编所有段;
  • -m machine 指定反汇编目标文件时使用的架构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值