Wiki do André

Partilha de conhecimento

Makefile para C/C++

Em baixo segue um exemplo de um makefile para C ou C++. Tem função de compilação parcial (por omissão, não torna a compilar módulos não alterados), compilação total (rebuild) e limpeza de objetos (clean).

  • flag CC contém o executável para o compilador a usar
  • CFLAGS contém as flags de compilação para os objetos .o,
  • LDFLAGS contém flags de compilação para o executável
  • SOURCES indica quais os ficheiros fonte que devem ser compilados
  • EXECUTABLE indica o nome do executável final a ser gerado

Makefile adpatado de http://mrbook.org/tutorials/make/

CC=g++
CFLAGS=-c -g -Wall
LDFLAGS=
SOURCES=adventure.cpp item.cpp weapon.cpp character.cpp hero.cpp bag.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=adventure

build: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
    $(CC) $(LDFLAGS) $(OBJECTS) -o $@

.cpp.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm -rf *.o $(EXECUTABLE)

rebuild: clean build