Autor Tópico: [Resolvido] Criando e compilando seus próprios cabeçalhos em C  (Lida 5155 vezes)

Offline mhkgalvez

  • Usuário Ubuntu
  • *
  • Mensagens: 289
  • Não temas: A Esperança VIVE!!!
    • Ver perfil
    • The Century Truth - Conhecendo a Verdade deste Século.
[Resolvido] Criando e compilando seus próprios cabeçalhos em C
« Online: 02 de Junho de 2010, 13:34 »
Olá pessoal, estou desenvolvendo uma aplicação em C. Quero, porém, criar um cabeçalho com as funções do meu programa, a fim de não encher o arquivo principal.

Normalmente eu compilo usando "gcc -o main.c nome_do_executavel"

Mas quando tem cabeçalho, como declaro no programa principal e como compilo?
« Última modificação: 04 de Junho de 2010, 15:17 por mhkgalvez »
"A quem vencer, eu o farei coluna no templo do meu Deus, e dele nunca sairá; e escreverei sobre ele o nome do meu Deus, e o nome da cidade do meu Deus, a nova Jerusalém, que desce do céu, do meu Deus, e também o meu novo nome."

Darcamo

  • Visitante
Re: Criando e compilando seus próprios cabeçalhos em C
« Resposta #1 Online: 02 de Junho de 2010, 18:04 »
Mesmo se você só tiver esse arquivo main.c o comando que você mencionou não vai funcionar. O nome do executável deve vir após o "-o" e depois você pode colocar quantos arquivos tiver.

Por exemplo, suponha que você tenha um arquivo principal main.c, um arquivo com cabeçalhos de funções func.h e um arquivo com a implementação dessas funções chamado func.c. Pode compilar tudo para gerar um executável com o comando
Código: [Selecionar]
gcc -o nome_do_executavel  main.c func.h func.cA ordem não importa, exceto que o "nome_do_executavel" deve vir imediatamente depois do "-o".

Offline mhkgalvez

  • Usuário Ubuntu
  • *
  • Mensagens: 289
  • Não temas: A Esperança VIVE!!!
    • Ver perfil
    • The Century Truth - Conhecendo a Verdade deste Século.
Re: Criando e compilando seus próprios cabeçalhos em C
« Resposta #2 Online: 02 de Junho de 2010, 18:18 »
Ah sim, eu só troquei a ordem sem querer.

Mas quanto à declaração. Eu dei uma pesquisada e deve estar entre aspas para declarar cabeçalhos criados por mim:

Código: [Selecionar]
#include <stdlib.h>
#include "meuCabeçalho.h"

Já tentei sem o .h e nem assim. Como devo declarar?
« Última modificação: 02 de Junho de 2010, 18:23 por mhkgalvez »
"A quem vencer, eu o farei coluna no templo do meu Deus, e dele nunca sairá; e escreverei sobre ele o nome do meu Deus, e o nome da cidade do meu Deus, a nova Jerusalém, que desce do céu, do meu Deus, e também o meu novo nome."

Darcamo

  • Visitante
Re: Criando e compilando seus próprios cabeçalhos em C
« Resposta #3 Online: 02 de Junho de 2010, 19:48 »
Citar
Ah sim, eu só troquei a ordem sem querer.

Mas quanto à declaração. Eu dei uma pesquisada e deve estar entre aspas para declarar cabeçalhos criados por mim:

Exato. Entre aspas para os arquivos que você criar e entre <> para os arquivos do sistema.

Abaixo segue um exemplo simples com 3 arquivos: main.c, util.h e util.c.

Arquivo main.c
Código: [Selecionar]
#include <stdio.h>
#include "util.h"

int main(int argc, char *argv[])
{
    printf("2 multiplicado por 3 é igual a %d\n", multiplicaPorTres(2));
    return 0;
}

Arquivo util.h
Código: [Selecionar]
#ifndef UTIL_H
#define UTIL_H

int multiplicaPorTres(int entrada);

#endif

Arquivo util.c
Código: [Selecionar]
#include "util.h"

int multiplicaPorTres(int entrada)
{
    return entrada * 3;
}

Compila com o comando
Código: [Selecionar]
gcc -o main main.c util.h util.c
Note que o arquivo com a implementação (util.c) inclui o arquivo com as declarações (util.h) e o arquivo principal inclui apenas o arquivo com a implementação. No entanto na hora de compilar todos os arquivos são compilados. Essa é a maneira mais usual.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Criando e compilando seus próprios cabeçalhos em C
« Resposta #4 Online: 03 de Junho de 2010, 22:08 »
Uma vez que o arquivo de cabeçalho é incluido no fonte em C, não é necessário compilá-lo diretamente na linha de comando com o GCC. Assim, no exemplo de Darcamo, a linha de comando ficaria assim:

Código: [Selecionar]
gcc -o main main.c util.c
Se o arquivo .h estiver em outro diretório que não o mesmo no qual se encontra o arquivo .C, você sempre pode usar a opção -I do compilador para indicar o diretório onde os .h serão procurados.