Bonjour,
Voilà mon problème, lorsque j'essaie de compiler mon prog j'obtiens l'erreur suivante:
parser.h:12:conflicting types for 'PARSER'
parser.h:12: previous declarations of PARSER
Et voilà comment je procède: je déclare dans un fichier parser.h un type :
Code :
- typedef struct {
- char type[10];
- char daemon[10];
- char server[10];
- char luser[10];
- char ruser[10];
- char fail[40];
- char day[10];
- char time[10];
- char sentence[2048];
- } PARSER;
|
auquel je fais appel dans deux autres fichiers d'en-tetes :
Code :
- //pattern.h
- #include "parser.h"
- PARSER *extract_pattern(char *line, REGEXTAB *regextab);
- ...
|
et
Code :
- //dbutil.h
- #include "parser.h"
- int insert_data(PARSER *parser);
- ...
|
Mon main ressemble à ca :
Code :
- //main.c
- #include <stdio.h>
- #include "parser.h"
- #include "pattern.h"
- #include "dbutil.h"
- int main(void)
- {
- ...
- }
|
et pour finir le makefile:
Code :
- parser: main.o pattern.o dbutil.o
- gcc -I'/usr/include/mysql' -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lpcre main.o pattern.o dbutil.o -o parser
- main.o: main.c pattern.h dbutil.h syslogparser.h parser.h
- gcc -c main.c
- pattern.o: pattern.c pattern.h parser.h
- gcc -c pattern.c
- dbutil.o: dbutil.c dbutil.h parser.h
- gcc -I'/usr/include/mysql' -c dbutil.c
|
Je sais que l'erreur vient de moi mais je trouve pas. Si quelqu'un pouvait m'indiquer mon erreur plzzzzz. La seule chose que je veux en fait c'est déclarer une structure comme un type et la réutiliser dans d'autres fichiers d'en-tete lors de la déclaration de fonctions.
Merci d'avance,
Kardiac
Message édité par kardiac le 07-09-2003 à 18:29:30