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.

[ Hits: 23.940 ]

Por: Perfil removido em 27/07/2007


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.

    Próxima página

Páginas do artigo
   1. O Makefile
   2. Regras para compilação e link
   3. Instalação
   4. Usando a biblioteca
Outros artigos deste autor

Grub animado no Ubuntu? BURG nele!

Passos essenciais para configurar um servidor de impressão dedicado no Linux

Experiência de migração para software livre

Um tour pelos ripadores de CDs para Linux

O "HACKER" da família

Leitura recomendada

Acessando a porta paralela via Linux

Android NDK: Desmistificando o acesso a códigos nativos em C

Parâmetros interessantes do scanf e do printf em C

Programação de Jogos com SDL

lib cURL - Trabalhe com URLs em C

  
Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts