Arquivos .h no MPLAB (Dependências, #include)

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Arquivos .h no MPLAB (Dependências, #include)

Mensagempor mazzer » 02 Abr 2009 10:25

Ola a todos,

Não estou conseguindo entender como o MPLAB "carrega" os arquivos .h na hora da compilação.
Estou com um projeto que tem uns 11 arquivos .C e 11 arquivos .H
E na hora de compilar, estou tendo o erro de multiple definitions. Eu imagino que o compilador tenta incluir duas vezes o mesmo arquivo.

Eu ja tentei colocar as diretivas nos arquivos .H:
Código: Selecionar todos
#ifndef xxxx
#define xxxx
....
#endif

Mas parece que o MPLAB ignora estes parâmetros e continuo tendo este erro.

Tenho certeza que não estou definindo as variáveis em partes diferentes do projeto.

No meu caso, todo arquivo .C tem seu arquivo .H e existem dependências entre eles (um precisa de dados que estão no outro).

Tentei de duas maneiras.
Maneira 1:
Cada arquivo .C chama seu respectivo arquivo .H
No main.h dou um include para todos os arquivos .H

Maneira 2:
Em todos os arquivos .H dou um include para o main.H
No main.h dou um include para todos os arquivos .H

Qual o procedimento correto para evitar esse problema?
Como vocês fazem?

Abraço!!!
mazzer
Byte
 
Mensagens: 165
Registrado em: 24 Out 2006 17:21
Localização: Sta Rita do Sapucai-MG

Mensagempor _blackmore_ » 02 Abr 2009 12:48

não seria ..

#define <12345678.h>;
#include <123145678.c>;

e se os arquivos .h e .c não estiverem no mesmo diretório do projeto deve-se indicar também o caminho (C:\xxx\xxx) para tal funcionar certo?
Já tentou isso? agora uma coisa que me foi dito em um curso de ASM ... o caminho onde tu está compilando o projeto não pode ter mais do que 64 dígitos contando espaços porque o MPLab "se perde" e não faz o serviço dele.
Espero que ajude.

abrax!
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor mazzer » 02 Abr 2009 14:01

Olá _blackmore_,

Então, os arquivos estão todos no mesmo diretório sim, e adicionados ao projeto.

O MPLAB encontra todos os arquivos, mas alguns deles ele carrega mais de uma vez, ai da erro de definições multiplas.

Obrigado!!
mazzer
Byte
 
Mensagens: 165
Registrado em: 24 Out 2006 17:21
Localização: Sta Rita do Sapucai-MG

Resolvido

Mensagempor mazzer » 02 Abr 2009 14:12

Bom.. aparentemente está resolvido...

O que eu fiz foi declarar todas as variáveis globais dentro de cada .H da seguinte forma:
Código: Selecionar todos
extern char var1;


E dentro do .C declaro ela novamente, mas sem o extern.

Até agora ta dando certo...

Abraço!
mazzer
Byte
 
Mensagens: 165
Registrado em: 24 Out 2006 17:21
Localização: Sta Rita do Sapucai-MG

Mensagempor Sergio38br » 02 Abr 2009 14:16

Olha não seria mais facil declarar no arquivo C principal estas variaveis e nos diversos C, apenas indicar como EXTERN???

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x