1
resposta

modelo de makefile para compilador gcc usando a libcurl na VM Linux Ubuntu

Por favor, teriam um exemplo de makefile no qual os arquivos com extensão .c ficam na pasta source, e os arquivos de cabeçalho .h em outra pasta, e utilizando a biblioteca estática libcurl.a de forma que o executável gerado deverá rodar na VM Linux Ubuntu? Grato

1 resposta

E aí, Alberto!

Pra montar esse makefile no estilo ninja pro teu compilador GCC e libcurl, dá uma olhada nesse exemplo:

CC = gcc
CFLAGS = -Wall -Iheader
LDFLAGS = -lcurl

SRC_DIR = source
OBJ_DIR = obj
BIN_DIR = bin

SRC = $(wildcard $(SRC_DIR)/*.c)
OBJ = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRC))
EXECUTABLE = $(BIN_DIR)/meu_programa

all: $(EXECUTABLE)

$(EXECUTABLE): $(OBJ)
    $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
    $(CC) $(CFLAGS) -c $< -o $@

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

.PHONY: all clean

Aqui a parada é organizada: os arquivos .c na pasta source, os .h na pasta header, e o executável lá na bin. Se liga, a libcurl tá no mix com -lcurl, então o GCC vai encontrar a lib quando for compilar.

Se precisar de mais ajuda, só dar um grito!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software