Makefile同时编译.c/.cpp/.s文件

该博客提供了一个Makefile模板,用于在嵌入式开发中同时编译.c、.cpp和.s文件,以Ne10的快速傅里叶变换(FFT)为例。通过示例代码,展示了如何配置Makefile来构建目标文件并进行编译链接,适用于涉及多类型源文件的项目。

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

在进行嵌入式开发时,有的情况需要同时编译.c/.cpp/.s文件,这里以Ne10的fft为例给出一个Makefile的模板可以同时编译这些文件供大家使用。

TARGET = fft_test

CC = arm-linux-gnueabihf-gcc

SRCDIR = src
OBJDIR = obj
BINDIR = bin

SRCS_c = $(wildcard $(SRCDIR)/*.c)
SRCS_cpp = $(wildcard $(SRCDIR)/*.cpp)
SRCS_S = $(wildcard $(SRCDIR)/*.s)

OBJS = $(SRCS_c:$(SRCDIR)/%.c=$(OBJDIR)/%_c.o) $(SRCS_cpp:$(SRCDIR)/%.cpp=$(OBJDIR)/%_cpp.o) $(SRCS_S:$(SRCDIR)/%.s=$(OBJDIR)/%_S.o)
rm = rm -f

CFLAGS = -Wall -g -O3 -march=armv7-a -mfpu=neon-vfpv4 -ffast-math -lm


$(BINDIR)/$(TARGET): $(OBJS)
	$(CC) $(OBJS) $(CFLAGS) -o $@

$(OBJDIR)/%_c.o : $(SRCDIR)/%.c
	$(CC) $(CFLAGS) -c $< -o $@
	
$(OBJDIR)/%_cpp.o : $(SRCDIR)/%.cpp
	$(CC) $(CFLAGS) -c $< -o $@

$(OBJDIR)/%_S.o : $(SRCDIR)/%.s
	$(CC) $(CFLAGS) -c $< -o $@

.PHONY: clean
clean:
	$(rm) $(OBJS)

.PHONY: remove
remove:
	$(rm) $(BINDIR)/$(TARGET)
	

相关代码可以点击这里获取:https://github.com/Ryuk17/NEON-examples/tree/main/fft-light

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值