永发信息网

请教一个Makefile的问题,就是如何从多个.o文件生成目标文件?

答案:2  悬赏:60  手机版
解决时间 2021-03-06 08:40
请教一个Makefile的问题,就是如何从多个.o文件生成目标文件?
最佳答案
CC := ${CC}
CFLAG+=-c -o
BINDIR=../bin
OBJDIR=../obj
SRCLIST = $(wildcard *.c)
OBJLIST = $(SRCLIST:%.c=$(OBJDIR)/%.o)
TARGET=main \ 把main和Checkdate换成你自己想生成的程序名,
Checkdate 多个程序的话,记得写上\这个符号
TARGET:=$(TARGET:%=$(BINDIR)/%)
all: Makefile.obj $(TARGET)
Makefile.obj: $(SRCLIST)
$(CC) $(SRCLIST) > $@
include Makefile.obj

OBJS=xx.o yy.o 把生成main程序的.o文件依赖写在这里,替换xx.o、yy.o,
$(BINDIR)/main: $(OBJS:%=$(OBJDIR)/%) 替换main
$(CC) -o $@ $^
OBJS=aa.o cc.o 把生成Checkdate程序的.o文件依赖写在这里,替换aa.o、cc.o,$(BINDIR)/Checkdate: $(OBJS:%=$(OBJDIR)/%) 替换Checkdate
$(CC) -o $@ $^

$(OBJDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(CFLAG) $@ $<

这样写Makefile就行了,如果有更多的可执行程序要生成,就增加TARGET下可执行程序名,增加OBJS那三行就行了。
全部回答
推荐看下Makefile的书籍,这个其实很简单!
临渊羡鱼不如退而结网!追问看了一些教程,太长,感觉看到后边前边就忘,所以想在实践中慢慢积累,你就以这个具体问题教教俺嘛,我住文件夹里有src,obj,bin三个子文件夹,src里有50个.c源文件,怎么在obj对应生成.o,再链接成一个目标文件在bin。。追答时间有限,有点忘了,在家没有调试环境,先这样写下,你分析下,应该是没有问题,具体的在linux下面运行下,看下结果,学会debug,如果什么不明白,一起探讨...
SRC=$(wildcard src/*.c)
TARGET=last
CC=gcc
OBJS=$(addsuffix .o,$(basename $(SRC)))
.PHONY:all
all:$(OBJS)
$(CC)$(OBJS) -o bin/$(TARGET)
$(OBJS):$(SRC)
$(CC) -c $*.c -o obj/$*.o
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么处理豆腐渣作饲料喂鹅效果好
同济大学有cuba的队吗
小乌龟为什么不吃东西拜托各位大神
家港房地产泰山路店地址在什么地方,想过去办
236TW-X778T-8MV9F-937GT-QVKBB 这个密匙是激
为什么别人都那么的有出息啊??
目前在下列哪一组地区已经有了适用的居住建筑
58299≈________(精确到千位) 可不可以填58千
桂林市宝贤中学怎样才能考进去?
如何让省市联动select 设置都默认为全国
新传奇外传中的组合那个强?
山东哪里有尼姑庵
烽火战国野地撞英雄要怎么撞(一十级的白起)
长洞山在哪里啊,我有事要去这个地方
晚上睡觉,第二天没有精神是怎么事,第二天还
推荐资讯
王维诗句:遍插茱萸少一人中的一人指谁呀
快递从杭州到郑州多久
布艺床好还是实木床好
围堰使用期间河流的常水位为+2.0m,可能出现
为民车行(临潼路店)地址在什么地方,想过去办
信基督可以纹身吗
教育教师工资不得低于当地公务员出自哪里
fortran 4.0编译时出现这个错误,怎么办呀?
天天广告加工厂在哪里啊,我有事要去这个地方
冯玉祥是冯竟先吗冯玉祥和冯巩的关系冯玉祥论
最近的写的,不错的东方玄幻小说,希望大家推
福特福克斯为什么打空调电子扇一开始转转一会
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?