Pular para o conteúdo

Dynamic libraries com libtool

Este artigo tem como objetivo dar uma pequena noção de como utilizar a ferramenta libtool para gerar uma biblioteca dinâmica, os famosos libalgumacoisa.so. Isso permite que você linke várias funções que são usadas em vários códigos numa mesma biblioteca.
Perfil removido removido
Hits: 24.548 Categoria: C/C++ Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar

O Makefile

Caros, achei mais fácil usar um Makefile como base para discutirmos o andamento de cada passo da compilação e link. Não irei me aprofundar muito, mas minha base de estudos se encontra em:
Mãos à obra então. Segue o Makefile que iremos trabalhar:

OBJECTS=fonte1.o fonte2.o

all:
   @for x in *.c ; do echo "    [CC] $$x -> `basename $$x .c`.o" ;libtool --silent --mode=compile gcc -c $$x; done
   @echo "    [LD] ${OBJECTS} -> libteste.la"
   @libtool --silent --mode=link gcc -export-dynamic -no-undefined -rpath /usr/local/lib -o libteste.la *.lo

clean:
   @rm -f *.o *~ *.lo *.la

install:
   @libtool --silent --mode=install cp libast.la /usr/local/lib
   @cp ast.h /usr/local/etc

uninstall:
   @libtool --silent --mode=uninstall rm -f /usr/local/lib/libteste*

Nele percebemos 4 seções, all, clean, install, e uninstall.
  • na seção all é onde estão as regras que serão executadas ao comando 'make' no console;
  • clean serve para removermos os arquivos compilados, deixando apenas os fontes.c;
  • install contém regras para a instalação;
  • e uninstall para a desinstalação.

Outro ponto importante é o fato de todas as linhas começarem com @. Isso faz com que o make não apresente saída padrão.

   1. O Makefile
   2. Regras para compilação e link
   3. Instalação
   4. Usando a biblioteca

Emuladores para seu sistema operacional

Instalando placa de som de modo rápido, fácil e prático

Instalando o OpenOffice

Kshutdown e suas funções

Servidor Openfire integrado ao Active Directory (Nível de Floresta 2008 R2)

Alocação dinâmica de memória em C

SDL - Ótimo para criação de jogos

Mapear objetos em C

Sinais em Linux

OneAPI: A plataforma da Intel para facilitar o desenvolvimento com chips Intel, AMD, ARM, NVIDIA POWER e FPGA

#1 Comentário enviado por balani em 27/07/2007 - 17:28h
Muito bom, parabens. seu artigo dá uma otima noção.
#2 Comentário enviado por sombriks em 29/07/2007 - 01:25h
é sim, pra pegar o nome da libe é só cortar fora o "lib" e o ".la | .so". Tá no pdf do brian cough.

Contribuir com comentário

Entre na sua conta para comentar.