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.547 Categoria: C/C++ Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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*
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. O Makefile
   2. Regras para compilação e link
   3. Instalação
   4. Usando a biblioteca

Zabbix 2.2 no CentOS 6 via repositório EPEL - Instalação e configuração

Os Mistérios da Fonte Wingdings do Windows

Instalando o modem Onda MSA110UP em distribuições Linux que utilizam o NetworkManager

Mandrake 10.1 Official - Análise de instalação e uso

FreeBSD Release 10.0 - Introdução ao sistema

SDL - Ótimo para criação de jogos

Tutorial SFML

Algum humor e C++ Design Patterns (parte 1)

A mágica do polimorfismo e seus conceitos na ótica de C/C++

Projeto Icecream (parte 1)

#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.