linux 编译c文件 arm,用arm-linux-gcc编译arm裸机程序(可调用库)

CC=arm-linux-gcc      #换成arm-elf-gcc不行,可以生成flat格式的文件,但我不知道怎么转成binary

LD=arm-linux-ld

OBJCOPY=arm-linux-objcopy

OBJDUMP=arm-linux-objdump

all:test.o

#arm-linux-ld -Bstatic  -Tubl_davinci.lds -Map system.map --cref -nostartfiles -o target.elf test.o util.o uart.o

#不能直接使用arm-linux-ld进行连接,一定要用下面的才可以成功。

$(CC)  -v -static -Wl,-Tubl_davinci.lds,-Map,system.map -nostartfiles -o target.elf test.o util.o uart.o

$(OBJCOPY)  -O binary  target.elf boot.bin #这个生产的binary文件有300K,看下system.map,它把非常多的库函数都链接进来了,不知有没办法减少?

@echo -n "The entry point of the binary is 0x"

@$(OBJDUMP) -t target.elf | grep -E '[0-9a-f]{8}*[0-9a-f]{8} main' | sed  's/^\([0-9a-f]\{8\}\)\([0-9a-f]\{4\}\).*/\2/'

test.o:

$(CC)   -c test.c util.c uart.c

clean:

rm *.o

# -v 显示编译链接的详细过程

#-static 静态链接

#-Wl,-Tubl_davinci.lds,-Map,system.map 这些参数传给链接器

#-nostartfiles 告诉gcc不要加入启动文件。

阅读(4764) | 评论(0) | 转发(0) |

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值