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

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

Navegando com privacidade com Tor e Firefox

Slackware - Instalação com Tagfiles

Instalando o Gnome-2.20.3 no Slackware 12 usando o Gslapt

Escreva para o VOL - Contribua você também!

Ocomon - Instalação e configuração

Leitura recomendada

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

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

Compilando Templates C++

Programação de Jogos com SDL

Linguagem C - Funções Variádicas

  
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