Autor Tópico: Como criar bibliotecas em c  (Lida 28812 vezes)

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Como criar bibliotecas em c
« Online: 05 de MAR?O de 2007, 12:34 »
Tenho uma duvida como poderia criar uma biblioteca em c, andei pesquisando no google e nao achei nada a respeito que seja bem explicado, espero que voces possam me explicar obrigado t++

Offline Lamego

  • Usuário Ubuntu
  • *
  • Mensagens: 1.943
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #1 Online: 05 de MAR?O de 2007, 12:43 »
Dá uma leitura na seção do libtool na apostila:
http://www.tol.pro.br/portal/component/option,com_tutorial/func,info/item,683/Itemid,31/

Criar bibliotecas é um tópico avançado...
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #2 Online: 05 de MAR?O de 2007, 12:52 »
Valeu cara exemplo apostila muito boa, vai me ajudar muito, muito obrigado t++  ;D

Offline solanoalves

  • Usuário Ubuntu
  • *
  • Mensagens: 398
  • Arch Linux
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #3 Online: 05 de MAR?O de 2007, 13:13 »
"Tai" uma coisa que eu sempre quis aprender.  :o

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #4 Online: 05 de MAR?O de 2007, 13:42 »
Se alguem pudesse dar em exemplo bem basico so pra ter uma ideia ficarei grato, por exempo tenho que criar um arquivo .c com as funçoes depois crio um arquivo .h declarando as funçoes e depois utilizo ela no meu programa, é isso? e se for isso como compilo com o gcc, obrigado t++

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #5 Online: 05 de MAR?O de 2007, 14:26 »
Eu achei uma apostila em ingles que fala como criar uma biblioteca so que no exemplo ele não cria um arquivo .h ele cria arquivos .o e um .a, gostaria de uma explicação do que exatamente faz esses arquivos .o e .a ja que nessa apostila so tem o exemplo, vou postar ele aqui realmente funciona eu fiz o teste, mas ele não cria o header,  ???

Citar
Here is a simple scenario to create and use library:
-----------------------------------------------------
main.c
#include <stdio.h>
/* functions have to be external */
extern void test();
extern void util();
int main() {
   printf("in main");
   /* Let call functions in library */
   test();
   util();
   return 0;
}
-----------------------------------------------------
test.c
int test() {
   printf("in test");
   return 0;
}
-----------------------------------------------------
util.c
int util() {
   printf("in util");
  return 0;
}
-----------------------------------------------------
Lets compile above source codes:

$  gcc -c test.c
$  gcc -c util.c
$ ar rc libtest.a test.o util.o
$ ranlib libtest.a
$ gcc -c main.c
$ gcc main.o -L /home/simsek -ltest -o testprog

We compiled source files and produce a executable program named testprog by last command
above. If you run testprog, it will produce following outputs:

$ ./testprog
in main
in test
in util

Offline solanoalves

  • Usuário Ubuntu
  • *
  • Mensagens: 398
  • Arch Linux
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #6 Online: 05 de MAR?O de 2007, 14:26 »
Assim por exemplo:

funcoes.h

Código: [Selecionar]
int produto(int a, int b)
{
 return a*b;
}

programa.c

Código: [Selecionar]
#include "funcoes.h"
#include <stdio.h>

int main()
{
 int i,t;
 i=5;
 t=10;

 printf("\nproduto : %d\n",produto(i,t));
}

Offline Lamego

  • Usuário Ubuntu
  • *
  • Mensagens: 1.943
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #7 Online: 05 de MAR?O de 2007, 14:27 »
Existem bibliotecas dinâmicas e estáticas, o mais fácil de explicar e utilizar são as estáticas.
Uma biblioteca não é mais do que um conjunto de ficheiros objecto (.o), estes ficheiros são os ficheiros gerados pelo compilador.

Uma forma muito trivial de compilar uma biblioteca é:
gcc biblioteca.c -o biblioteca.o

Depois para usar ela:
gcc programa.c bibliotecta.o -o programa

Bibliotecas mais complexas são um conjunto de .o, arquivados com o "ar".
Bibliotecas dinâmicas são mais complexas de explicar.

Se você não sabe para que serverm os .h, esquece a criação de bibliotecas, convem ser um programador experiente em C antes de pensar em criar bibliotecas :)
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

Offline solanoalves

  • Usuário Ubuntu
  • *
  • Mensagens: 398
  • Arch Linux
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #8 Online: 05 de MAR?O de 2007, 14:31 »
Citar
Uma forma muito trivial de compilar uma biblioteca é:

Que significa trivial ?

Offline Lamego

  • Usuário Ubuntu
  • *
  • Mensagens: 1.943
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #9 Online: 05 de MAR?O de 2007, 14:41 »
trivial = simples
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

ginho

  • Visitante
Re: Como criar bibliotecas em c
« Resposta #10 Online: 05 de MAR?O de 2007, 14:44 »
Julga-se. Algo sabido de todos.

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #11 Online: 05 de MAR?O de 2007, 14:50 »
Julga-se. Algo sabido de todos.

Perdão mais não entendi,

Offline Diego_Rocha

  • Usuário Ubuntu
  • *
  • Mensagens: 372
  • Slackware current
    • Ver perfil
Re: Como criar bibliotecas em c
« Resposta #12 Online: 05 de MAR?O de 2007, 15:54 »
Se você não sabe para que serverm os .h, esquece a criação de bibliotecas, convem ser um programador experiente em C antes de pensar em criar bibliotecas :)

Ai cara eu acabei de criar um header aqui, não sei se fiz certo mais funcionou, e foi muito simples criei o arquivo.h com as bibliotecas que queria no meu programa criei as funçoes e depois no programa chamei o header com o #include "arquivo.h" mais ou menos assim,

arquivo.h
Código: [Selecionar]
#ifndef _ARQUIVO_H
#define _ARQUIVO_
#include <stdio.h>

void teste(char *_nome);

void teste(char *_nome)
{
        printf("Seu nome é %s", nome);
}

#endif

e depois no meu arquivo.c fiz isso

arquivo.c
Código: [Selecionar]
#include "arquivo.h"
int main ()
{
         char nome[100];
         printf("Qual seu nome --> ");
         scanf("%s", nome);
         teste(nome);
         return 0;
}

Agora pergunto isso esta certo como um header; ??

ginho

  • Visitante
Re: Como criar bibliotecas em c
« Resposta #13 Online: 05 de MAR?O de 2007, 16:13 »
Citar
Julga-se. Algo sabido de todos.

Literalmente.


ginho

  • Visitante
Re: Como criar bibliotecas em c
« Resposta #14 Online: 05 de MAR?O de 2007, 16:39 »
É o que diz no meu dicionário:

 Não consegui deixar melhor, é muito antigo, me acompanha deste os primeiros anos
de escola.
Nossa língua é maravilhosa. Era apenas o significado, não uma afirmação.