Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Triton

Makefiles

Mensagens Recomendadas

Triton    12
Triton

Estou a fazer um projecto em C e decidi escrever um Makefile para facilitar a compilação do projecto.

Não tenho muita experiência com o GNU make por isso depois de muitas tentativas falhadas e de copiar ideias de alguns Makefiles que tinha para aqui, lá consegui fazer um que funciona.

A minha questão é se esta é a melhor forma de fazer o que pretendo, ou se existem alternativas mais flexíveis. ;)

# use gcc to compile
CC = gcc

# use gcc to link the files
LD = gcc

# compiler flags
XMLCFLAGS = $(shell xml2-config --cflags)
SDLCFLAGS = $(shell sdl-config --cflags)
CFLAGS = $(XMLCFLAGS) $(SDLCFLAGS) -Wall -pedantic

# linker flags
XMLLDFLAGS = $(shell xml2-config --libs)
SDLLDFLAGS = $(shell sdl-config --libs)
LDFLAGS =  $(XMLLDFLAGS) $(SDLLDFLAGS)

# source files
SOURCES = main.c
OBJECTS = $(SOURCES:.c=.o)

# executable name
EXECUTABLE=deadfall

all: $(SOURCES) $(EXECUTABLE)

# linking
$(EXECUTABLE): $(OBJECTS)
$(LD) $(LDFLAGS) $(OBJECTS) -o $(EXECUTABLE)

%.o: %.c
$(CC) $(CFLAGS) -c -$<

clean:
rm -rf *o

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rgcaldas    0
rgcaldas

Não tenho a certeza mas acho que os parâmetros são case sensitive, experimenta -std=c99

EDIT: estive a testar no terminal é pelo menos aqui funciona assim.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

Não tenho a certeza mas acho que os parâmetros são case sensitive, experimenta -std=c99

EDIT: estive a testar no terminal é pelo menos aqui funciona assim.

rgcaldas, já resolvi esse problema, estava a tentar com dois hífenes. ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade