makefile编译不同⽬录下的源⽂件
如题,今天我们来解决 在makefile⽂件中 如何配置,编译在不同⽬录下的源⽂件,因为有时候有这样的场景嘛。
测试场景
⽬录结构如下,头⽂件在include下,源⽂件在 src下,客户端程序main.c 在 03makefile⽂件下。如何来编译main.c呢?makefile⽂件内容
⽂件内容有详细解释哟,由于在不同⽬录下,那么我们在编译.c⽂件时,他们的路径就会有多个,模式匹配就要写多个。
target = app
#由于 .c⽂件在不同的⽂件下,那么匹配模式要匹配不同⽂件下的%.c⽂件
src1 = $(wildcard ./src/*.c)
src2 = $(wildcard ./*.c)
obj1 = $(patsubst %.c,%.o,$(src1))
obj2 = $(patsubst %.c,%.o,$(src2))
src = ./src/
$(target):$(obj1) $(obj2)
gcc $^ -o $@
# gcc $(obj) -o $(target)
#编译 src下的.c⽂件为.o⽂件
%.o:$(src)%.c
gcc -c $< -o $@
#编译当前⽂件下的main.c⽂件
%.o:%.c
gcc -c $< -o $@
.PHONY:clean #防⽌外⾯有clean⽂件阻⽌执⾏clean
clean:
#-mkdir /root/aaa  #在命令前添加 - 当前命令出错,仍然可以往后⾯执⾏
-rm $(target) $(obj1) $(obj2) -f
hello:
makefile phonyecho "hello world"
检验结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。