Criar bibliotecas em C

6 respostas
J

Oi Pessoal…

Queria saber como posso criar bibliotecas com funções que implementei em C, de modo que eu consiga incluí-las em outros programas através do “#include”. Alguém tem alguma ideia ou pode me indicar um material que explique o processo?

6 Respostas

V

Conceitos básicos: http://www.pontov.com.br/site/index.php/cpp/46-conceitos-basicos/155-como-usar-bibliotecas-cc
Windows: http://logix4u.net/Programming/vc++/A_Tutorial_on_creating_DLLs_with_VC++.html
Linux: http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html

J

Eu preciso necessariamente criar dll´s para chamar as funções dentro do meu programa principal (usando include)?

E

Você pode organizar suas funções em C em bibliotecas “estáticas” (arquivos .lib no Windows, .a no Unix), que é a solução recomendada*, ou então em DLLs ou “shared objects” (arquivos .dll no Windows, .so no Unix). Eu indicaria a criação de bibliotecas estáticas, que é mais fácil e dá menos problemas de ambiente.

  • Acho que usar DLLs só é necessário em alguns casos em particular, que são normalmente aqueles em que há uma aplicação e seus plugins (como um browser e os seus plugins), ou então quando há muito código em comum (como é o caso de um sistema operacional), mas no seu caso em particular não vale a pena - na verdade, evite criar DLLs se você não souber o que está fazendo.
V

Era o que o primeiro artigo daquela lista explica.

P

include != biblioteca

o include inclui um arquivo header, que contem os cabeçalhos necessários para o compilador entender as estruturas de dados, macros, prototipos de funções, etc.

as bibliotecas vc informa em compile-time, adicionando opções no compilador para adiciona estatica ou dinamicamente.

A

Interessante! No Viva o Linux tbm tem uma dica mais ou menos parecida, rápida e direto ao ponto. Só que é para C++.

P/ quem quiser dar uma olhada:
http://www.vivaolinux.com.br/dica/Criar-sua-propria-biblioteca-C++

Criado 18 de junho de 2010
Ultima resposta 18 de jun. de 2010
Respostas 6
Participantes 5