Compilação de Bibliotecas.

1. Compilação de Bibliotecas.

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 10/12/2007 - 23:54h

Boa Noite. Tenho a Seguinte dúvida:
Quando dividimos um projeto em diversos arquivos fontes, podemos compila-los todos juntos o somente os que nos interessam em linha de comando. Mas quando neste mesmo projeto hipotético crie uma header(.h), como faço para compila-la? A header tem um processo de compilação diferente dos demais arquivos, ou pode ser compilado como um arquivo-fonte(.c) normalmente?

Espero ter sido Claro,

Abraços,

Fagner Candido


  


2. Header não é compilado!

Marcelo Utikawa da Fonseca
utikawa

(usa Ubuntu)

Enviado em 25/12/2007 - 22:38h

Quando existem vários arquivos de código fonte, o procedimento normal é de se existir um arquivo header para cada um dos arquivos, de modo a "informar" aos outros arquivos o que é que cada um contém. Vamos supor que existam 3 arquivos: programa.c, strings.c e matematica.c
Em strings.c deverão existir funções para trabalhar com strings, matematica.c deverá conter funções para cálculo matemático e programa.c conterá a função main e o restante do código. Se em programa.c você tentar chamar uma função que existe em matematica.c, como o compilador sabe que ela está lá? Para o compilador a função não existe! Assim o arquivo matematica.h conteria os protótipos das funções matemáticas e strings.h conteria os protótipos das funções para manipulação de strings. Para usar estes arquivos .h, deve-se incluí-los no arquivo .c que depende das informações dele. Assim, em programa.c deveriam existir as seguintes linhas conforme o nosso exemplo:

#include "strings.h"
#include "matematica.h"

É para isto que servem os arquivos header. Eles são apenas incluídos em arquivos .c e portanto seu conteúdo será compilado durante a compilação do arquivo .c que os incluiu e portanto eles não são compilados diretamente!
Para compilar um software com os arquivos citados, deveríamos executar os comandos abaixo:

gcc -c -o matematica.o matematica.c
gcc -c -o strings.o strings.c
gcc -o programa programa.c matematica.o strings.o

Espero também ter sido claro e qualquer dúvida é só postar!

Abraços e Feliz Natal!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts