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: 22.562 ]

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

Lançamento do GFP Open (Gerenciador Financeiro Pessoal) versão 0.0.1.2

Instalação personalizada com Debian

Prevenindo problemas com impressoras via Samba no Windows

Como imprimir diretamente na porta de impressão

Instalação de softwares no Debian Linux e derivados

Leitura recomendada

Desenvolvendo aplicativo para autenticação biométrica utilizando a Libfprint

Compilando o Mono 2.2 no Ubuntu 8.10

Utilizando técnicas recursivas em C e C++

O Produtor e o Consumidor

Parâmetros interessantes do scanf e do printf 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