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

Catch ‘Undextexception’ Erro em seu teste de mocha Catch ‘Undextexception’ Erro em seu teste de mocha Tecnologia
Isuzu Africa Oriental hospeda estudantes de MBA executivo de Nova York Isuzu Africa Oriental hospeda estudantes de MBA executivo de Nova York Tecnologia
Explorando os benefícios para sua saúde e o planeta Explorando os benefícios para sua saúde e o planeta Tecnologia
O primeiro sistema de tecnologia “AI de veículos inteligentes para veículos inteligentes” de Geely O primeiro sistema de tecnologia “AI de veículos inteligentes para veículos inteligentes” de Geely Tecnologia
O que é um ciclotron – tecnologia de computador O que é um ciclotron – tecnologia de computador Tecnologia
Cinco forças moldando a próxima onda de inovação quântica Cinco forças moldando a próxima onda de inovação quântica Tecnologia

Leave a Reply Cancel reply

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

Últimas postagens

  • O primeiro dia de outubro da Amazon reduz o Quest 3S para US $ 250 antes da temporada de férias
  • O que outras criptomoedas podem aprender com Ripple
  • O CEO do Shopify, Tobias Lütke, corre com carros em seu tempo de inatividade
  • Principais perguntas sobre entrevistas do Salesforce Admin –
  • 5 Toronto Blue Jays culpados por desperdiçar uma oportunidade de ouro de afastar os Yankees

Categorias

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

Direitos Autorais © 2025 Torvyn.

Powered by PressBook Blog WordPress theme