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.984 ]

Por: Perfil removido em 27/07/2007


Regras para compilação e link



Agora vamos para a parte mais interessante do artigo, a compilação e link. Vamos então focar na seção "all" do Makefile visto na página anterior.

A primeira regra que é um for, serve para compilar todos os arquivos em um só comando, não precisando repetir várias vezes o comando. O trecho:

echo "    [CC] $$x -> `basename $$x .c`.o"

fará apenas com que a saída da compilação de cada arquivo seja parecido com:

   [CC] fonte.c -> fonte.o

Para quem está acostumado com o make do kernel do Linux, sim, me baseei nele para criar essa saída, que achei bastante agradável.

O próximo comando:

libtool --silent --mode=compile gcc -c $$x

é que fará o verdadeiro trabalho. Usaremos o libtool no modo compile para apenas criar os objetos do mesmo, que têm extensão .lo. O gcc por sua vez gerará o código objeto .o, como é de costume. A flag --silent do libtool apenas fará com que o mesmo não apresente saídas.

A terceira linha:

@libtool --silent --mode=link gcc -export-dynamic -no-undefined -rpath /usr/local/lib -o libteste.la *.lo

fará com que o libtool, agora em modo link, faça a ligação entre seus fontes para criar a biblioteca libteste.la, que também já foi definido em -rpath a sua pasta de instalação, que logicamente pode ser alterada.

Para mais informações quanto às flags, recomendo consultar man libtool, ou então man gcc.

Página anterior     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

Postfix com courier-pop de forma simples

Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop

Karl Marx e a concorrência individual no Viva o Linux

Compilando e otimizando KDE 3.x

Instalação e configuração do Ubuntu Gusty Gibbon na linha de notebooks HP/Compaq

Leitura recomendada

SDL e C - Uma dupla sensacional

Como funcionam os alocadores de memória do STD C?

O Produtor e o Consumidor

Tutorial OpenGL v3.0

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