Pular para o conteúdo

Como criar bibliotecas dinâmicas em C/C++

Dica publicada em C/C++ / Miscelânea
Alexandre Felipe Muller de Souza winchester
Hits: 22.989 Categoria: C/C++ Subcategoria: Miscelânea
  • 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.

Como criar bibliotecas dinâmicas em C/C++

Mais comuns no Windows, as bibliotecas dinâmicas podem ter sua utilidade no Linux em programas de grande porte ou sistemas com pouca memória. Essa dica explica rapidamente como criar e usar uma biblioteca dinâmica nos seus programas em C/C++.

Digamos que você escreveu dois arquivos em C (fulano.c e beltrano.c), com as funções que serão usadas na biblioteca minhadl.so. Para criar a biblioteca, usaremos os arquivos objetos digitando os seguintes comandos:

$ gcc -fPIC -o fulano.o -c fulano.c
$ gcc -fPIC -o beltrano.o -c beltrano.c
$ ld -shared -o minhadl.so fulano.o beltrano.o


Para compilar seu programa, use o seguintes parâmetros do GCC:

$ gcc -o main main.c -L. -lminhadl -ldl

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

Software de administração de celular no Linux

Instalar distros dentro de arquivos

Convertendo inteiros para ascii e ascii para inteiros em C

CodeBlocks - IDE C++ no Ubuntu 12.04

Gnuconio, a conio para Windows e GNU/Linux (v0.1)

Corrigindo o bug "file format not recognized" após atualizar glib2

Exercícios em C

#1 Comentário enviado por le.roque em 04/08/2006 - 17:03h
uma dúvida !!
como ficaria o arquivo main.c pra usar essa biblioteca ?? precisa fazer algum #include ??
#2 Comentário enviado por fcyber em 20/09/2006 - 10:59h
Ótima dúvida... le.roque...
Como chamar a biblioteca dinamica? algum tratamento de erro de a biblioteca nao puder ser achada??? Como deve ser feito os #include para poder usar a biblioteca??
#3 Comentário enviado por nunesvictor em 06/08/2007 - 15:07h
bom...
usando algo parecido...
vc pode usar varios codigos-fonte .c pra gerar um executavel soh

exemplo:

$ gcc -c func1.c
$ gcc -c func2.c
$ gcc -c main.c

isto vai gerar 3 arquivos .o (objetos), ja compilados, mas ainda nao linkados
pra juntar isso tudo

$ gcc -o exec main.o func1.o func2.o

a duvida sobre como chamar as funçõs...
em vez de declarar como cabeçalhos (#include "func1.c")
vc faz assim:

#include <stdio.h>

extern void funcao(void);
extern int fencao2(int a);

main() {
funcao();
funcao2();
}


assim, sempre ele vai chamar de um arquivo externo...
ja com a lib nau consegui compilar o executavel usando a .so
mas consegui gerá-la
qual o erro?

Contribuir com comentário

Entre na sua conta para comentar.