zecapistolas Posted June 6, 2009 at 11:29 AM Report #270343 Posted June 6, 2009 at 11:29 AM Boas Pessoal, Estou envolvido num projecto mas estou com algumas dúvidas no meu makefile.... # Makefile CC = gcc CFLAGS = -Wall OBJS_CC = video-text.o video-graphics.o asprite.o sprite.o ints.o timer.o music.o queue.o GQueue.o kbc.o rtc.o GestorJogo.o pixmap.o codepage.o SRCS_CC = $(OBJS_CC:.o=.c) EXTRAH = utypes.h OUTFILE = proj.exe all: $(OUTFILE) $(OUTFILE): main.o $(EXTRAH) $(CC) $(CFLAGS) main.o $(EXTRAH) -o $(OUTFILE) .c.o: $(SRCS_CC) $(CC) $(CFLAGS) -c $< clean: rm -rf $(OBJS_CC) $(OUTFILE) main.o rebuild: clean all Dúvida: como faço para quando altero um ficheiro .h ele me recompile o projecto ?! É que quando altero um ficheiro .h ele diz que não precisa fazer nada, não precisa compilar.... cumps 😛
karva Posted June 6, 2009 at 11:31 AM Report #270345 Posted June 6, 2009 at 11:31 AM Ao fazeres make rebuild ele não faz isso? Proud LEIC-A@IST student!
zecapistolas Posted June 6, 2009 at 11:34 AM Author Report #270347 Posted June 6, 2009 at 11:34 AM Ao fazeres make rebuild ele não faz isso? Faz.... Mas por exemplo, faço "make rebuild" ele limpa e compila todo o projecto, depois edito o ficheiro "sprite.h", faço "make" e ele diz "Nothing to be done for 'all'".... Um solução (acho eu) seria por no cabeçalho do makefile algo do género: sprite.o: sprite.c sprite.h video-graphics.o: video-graphics.c video-graphics.h ...etc... Mas isso é pouco automático.... ? cumps 😛
zecapistolas Posted June 6, 2009 at 12:17 PM Author Report #270353 Posted June 6, 2009 at 12:17 PM Acho que resolvi o problema.... Aoi nvés de colocar ".c.o: $(SRCS_CC)", coloquei "%.o: %.c %.h" ao que tudo indica resolveu o problema.... Sabem-me garantir que a linha "%.o: %.c %.h" compila apenas o ficheiro source dele e o header dele também.... ñ á o problema de ele estar a criar o ficheiro sprite.o através do ficheiro sprite.c sprite.h GestorJogo.h etc, por exemplo?! cumps 😛
Triton Posted June 6, 2009 at 01:33 PM Report #270369 Posted June 6, 2009 at 01:33 PM Não deves fazer assim. O que tu queres é pedir ao compilador as dependências de cada ficheiro. depend: $(CXX) $(CXXFLAGS) -MM $(SRC_CPP) > .makedeps -include .makedeps Já não me lembro bem se a sintaxe está certa, mas é algo do género. 😁 <3 life
zecapistolas Posted June 7, 2009 at 08:59 AM Author Report #270486 Posted June 7, 2009 at 08:59 AM Não deves fazer assim. O que tu queres é pedir ao compilador as dependências de cada ficheiro. depend: $(CXX) $(CXXFLAGS) -MM $(SRC_CPP) > .makedeps -include .makedeps Já não me lembro bem se a sintaxe está certa, mas é algo do género. 😁 Não percebi.... ? cumps 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now