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

Correção 3D LUT vs. Color: O que é melhor para o seu vídeo no Filmora? Correção 3D LUT vs. Color: O que é melhor para o seu vídeo no Filmora? Tecnologia
Minhas escolhas de venda de sexta -feira negra de 2024 Minhas escolhas de venda de sexta -feira negra de 2024 Tecnologia
Transformando a maneira como vivemos Transformando a maneira como vivemos Tecnologia
Transformando o desenvolvimento de aplicativos com IA, parte 3: desafios e considerações éticas Transformando o desenvolvimento de aplicativos com IA, parte 3: desafios e considerações éticas Tecnologia
O agente de suporte ao Xbox prato acidentalmente na Remaster Oblivion, pode ser lançado em quatro dias O agente de suporte ao Xbox prato acidentalmente na Remaster Oblivion, pode ser lançado em quatro dias Tecnologia
Câmera Leica, Dimensidade 8300 Ultra & 144Hz AMOLED Display Câmera Leica, Dimensidade 8300 Ultra & 144Hz AMOLED Display Tecnologia

Leave a Reply Cancel reply

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

Últimas postagens

  • Os melhores acessórios Meta Quest 3 e por que você os desejar
  • IPL 2025 Regra de substituição de jogadores: o BCCI permite que as equipes escolham novos jogadores para as partidas restantes
  • OM USD Preço hoje: Mantra Live Chart | Cap
  • Land mais shows com este assistente de aplicativo de emprego movido a IA por apenas US $ 55
  • Como restringir o conteúdo sensível no Facebook

Categorias

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

Direitos Autorais © 2025 Torvyn.

Powered by PressBook Blog WordPress theme