J'écris un module noyau dans lequel j'ai 3 fichiers source et un fichier d'en-tête. Quand je compile, il me montre l'erreur suivante:Erreur: définition multiple
/home/karan/project/proc.o: In function `proc_read':
/home/karan/project/proc.c:23: multiple definition of `info'
/home/karan/project/main.o:/home/karan/project/main.c:23: first defined here
/home/karan/project/tx_pkt.o: In function `tx_packet':
/home/karan/project/tx_pkt.c:9: multiple definition of `info'
/home/karan/project/main.o:/home/karan/project/main.c:23: first defined here
Je pense que le problème est que le compilateur prend définition struct info
plus d'une fois. Mais quelle est la solution? Le struct info
est déclaré dans le fichier d'en-tête. Le fichier d'en-tête est la suivante:
int proc_write(struct file *filp,const char *buffer,unsigned long count,void *data);
int proc_read(char *buffer,char **buffer_location,off_t offset,int buffer_length,int *eof,void *data);
void tx_packet(void);
#ifndef MYDEFS_H
#define MYDEFS_H
struct inform
{
char tx_buffer[100];
struct iphdr *ip1;
};
extern struct inform info;
#endif
@phimuemue Je l'ai résolu en fait j'écrivais l'objet de struct info là ....... – karan421
codage @torrential salut j'ai résolu le problème en mettant extern info de structure inf mais maintenant il me donne avertissement suivant: AVERTISSEMENT: "info" [/home/karan/project/generate.ko] undefined! – karan421
@OliCharlesworth Merci, vous avez probablement raison. J'ai réalisé que nous n'avions que quelques fonctions, pas de structure. – phimuemue