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

Pense diferente – O’Reilly Pense diferente – O’Reilly Tecnologia
O MIT negar O MIT negar Tecnologia
Ensinando crianças sobre segurança cibernética desde o início Ensinando crianças sobre segurança cibernética desde o início Tecnologia
Baixe o Hitman Sniper Mod Apk Unlimited Money mais recente 100% funcionando Baixe o Hitman Sniper Mod Apk Unlimited Money mais recente 100% funcionando Tecnologia
Use o desktop hospedado baseado em nuvem para acesso em tempo real aos seus dados e programas. – Soluções de computador para PC interno Use o desktop hospedado baseado em nuvem para acesso em tempo real aos seus dados e programas. – Soluções de computador para PC interno Tecnologia
Kindle Scribe agora disponível na Austrália: um divisor de águas para profissionais e amantes de livros Kindle Scribe agora disponível na Austrália: um divisor de águas para profissionais e amantes de livros Tecnologia

Leave a Reply Cancel reply

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

Últimas postagens

  • Os verdadeiros prós e contras de administrar vários negócios
  • A chance de DC de intensificar a educação especial – ou ficar mais atrás de Maryland
  • Adam Silver confirma uma enorme mudança de formato da NBA All-Star para 2026
  • O colapso do FTX – Como identificar o site de troca de criptomoedas falsas | por Ankit Gupta | BuyuCoin palestras
  • Renderização condicional no LWC – DevFacts | Blog de tecnologia | Comunidade de desenvolvedores

Categorias

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

Direitos Autorais © 2025 Torvyn.

Powered by PressBook Blog WordPress theme