Skip to content

Torvyn

Obter Atualização

  • Lar
  • criptomoeda
  • Lei Educacional
  • Esportes
  • Tecnologia
  • Realidade Virtual
  • Mais
    • Sobre nós
    • Contate-nos
    • Isenção de responsabilidade
    • política de Privacidade
    • Termos e Condições
  • Toggle search form
Modelo Makefile para uma biblioteca compartilhada em C (com explicações)

Modelo Makefile para uma biblioteca compartilhada em C (com explicações)

Posted on March 21, 2025 By Rehan No Comments on Modelo Makefile para uma biblioteca compartilhada em C (com explicações)

Última atualização em 28 de outubro de 2019

tl; dr: Salve o seguinte arquivo como Makefile e altere os arquivos de origem para os que você pretende.

# Makefile template for a shared library in C
# https://www.topbug.net/blog/2019/10/28/makefile-template-for-a-shared-library-in-c-with-explanations/

CC = gcc  # C compiler
CFLAGS = -fPIC -Wall -Wextra -O2 -g  # C flags
LDFLAGS = -shared   # linking flags
RM = rm -f   # rm command
TARGET_LIB = libtarget.so  # target lib

SRCS = main.c src1.c src2.c  # source files
OBJS = $(SRCS:.c=.o)

.PHONY: all
all: ${TARGET_LIB}

$(TARGET_LIB): $(OBJS)
	$(CC) ${LDFLAGS} -o $@ $^

$(SRCS:.c=.d):%.d:%.c
	$(CC) $(CFLAGS) -MM $< >$@

include $(SRCS:.c=.d)

.PHONY: clean
clean:
	-${RM} ${TARGET_LIB} ${OBJS} $(SRCS:.c=.d)

O trecho de código acima também está disponível em Github Gist.

Explicação

Processo básico: para cada arquivo de origem C (example.c), o compilador C, com o -MM alternar, cria um arquivo de regra (example.d). O arquivo de regra descreve as dependências (por exemplo, arquivos de cabeçalho) do arquivo de objeto (example.o) correspondentes ao arquivo de origem C. O compilador C compila cada arquivo de origem C com um arquivo de objeto. O vinculador vincula todos os arquivos de objeto à biblioteca compartilhada.

  1. Linhas 4-8: o comando compilador, sinalizadores do compilador, sinalizadores de ligação, comando de deleção e nome da biblioteca de destino, respectivamente.
  2. Linha 10: a lista de arquivos de origem.
  3. Linha 11: arquivos de objeto, inferidos da lista de arquivos de origem substituindo o .c sufixo com .o.
  4. Linhas 13–14: o all O alvo depende do destino da biblioteca de destino. Em outras palavras, construindo o all alvo, que é o padrão ao executar maketerá a biblioteca de destino construída.
  5. Linha 16: A biblioteca de destino depende da presença de todos os arquivos de objeto.
  6. Linha 17: construa a biblioteca de destino ($@) aplicando o comando compilador especificado ($(CC)) com os sinalizadores de ligação especificados ($(LDFLAGS)) a todos os arquivos de objeto ($^).
  7. Linha 19: Existe um arquivo de regra (*.d) para cada arquivo de origem C. Seu nome de arquivo é determinado substituindo o .c sufixo com .d.
  8. Linha 20: Crie cada arquivo de regra ($@) aplicando -se ao seu arquivo de origem C correspondente ($<) o comando compilador especificado ($(CC)) com as bandeiras do compilador especificado ($(CFLAGS)) e o -MM bandeira.
  9. Linha 22: inclua os arquivos de regra como parte do Makefile.
  10. Linhas 24–26: o clean Target, que exclui todos os arquivos gerados (${TARGET_LIB}Assim, ${OBJS}Assim, $(SRCS:.c=.d)) usando o comando de deleção (${RM}). Isso pode ser invocado por make clean.

Esta entrada foi postada em C/C ++Assim, GNU sobre 28 de outubro de 2019 por Hong.

Modelo Makefile para uma biblioteca compartilhada em C (com explicações)

Sobre Hong

O mantenedor do topbug.net.


Tecnologia

Post navigation

Previous Post: Lennon está de volta! O ex -chefe do Celtic assume o comando de Dunfermline … e emitidos ousados ​​promessa a apoiadores em meio a lutar pela sobrevivência do campeonato
Next Post: O ex -despachante do 911 Hustle ganha mais de US $ 4ka mês

Mais Artigos Relacionados

Tudo o que você precisa saber antes de investir em criptomoeda 2024 Tudo o que você precisa saber antes de investir em criptomoeda 2024 Tecnologia
Um guia rápido para 7 principais métricas de marketing por e -mail para assistir Um guia rápido para 7 principais métricas de marketing por e -mail para assistir Tecnologia
Baixe Clash of Clans 15.83.6 Dinheiro ilimitado, gemas, ouro, elixir mod apk crack Baixe Clash of Clans 15.83.6 Dinheiro ilimitado, gemas, ouro, elixir mod apk crack Tecnologia
Os purificadores do ar podem ajudar por perunda? Pergunte aos pais de estimação Os purificadores do ar podem ajudar por perunda? Pergunte aos pais de estimação Tecnologia
Por favor, não compre um protetor de tela ‘AI-otimizado’ ou caixa de telefone Por favor, não compre um protetor de tela ‘AI-otimizado’ ou caixa de telefone Tecnologia
Aqui está a caixa de pulso de arco louca para o Galaxy S25 Ultra Aqui está a caixa de pulso de arco louca para o Galaxy S25 Ultra Tecnologia

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Últimas postagens

  • Pete Alonso aborda o futuro incerto com a decisão de exclusão se aproximando
  • A bicicleta argentina
  • Além do militar, a Meta está de olho em uma expansão de XR no campo médico
  • Recorde nocautes e decisões divididas
  • Dicas e truques de CoinWink – Blog Coinwink

Categorias

  • criptomoeda
  • Esportes
  • Lei Educacional
  • Realidade Virtual
  • Tecnologia

Direitos Autorais © 2025 Torvyn.

Powered by PressBook Blog WordPress theme