Makefile模板之 sub.c main.c

本文介绍如何使用arm-linux-objcopy复制并转换ELF格式的可执行文件为二进制文件,以及使用arm-linux-objdump显示二进制文件信息,包括反汇编代码。通过示例展示了编译过程及生成静态库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

arm-linux-objcopy被用来复制一个目标文件的内容到另一个文件中,可以使用不同于源文件的格式来输出目的文件,即可以进行格式转换。用来将ELF格式的可执行文件转换为二进制文件。

arm-linux-objdump用于显示二进制文件信息,常用来查看反汇编代码。

src := $(shell ls *.c)
objs := $(patsubst %.c, %.o, $(src))


target: $(objs)
	gcc -o $@ $^
%.o:%.c
	gcc -c -o $@ $<
clean:
	rm -rf target *.o

_________________________________________________________________________________________

sub.c / sub.h /main.c三个文件:
gcc -c sub.c -o sub.o
gcc -c main.c -o main.o
gcc main.o sub.o -o test
./test

不想提供源码时,可以编译成静态库:
gcc -c sub.c -o sub.o
gcc -shared sub.o -o sub.a
gcc main.o -o test ./sub.a

———————————————————————————————————————————————————

 汇编  gcc -S sub.c -o sub.s 
预处理 gcc -E sub.c 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值