- Messaggi: 25
- Ringraziamenti ricevuti 0
Questione di stile
11 Anni 1 Giorno fa #6
da prinaldi
Risposta da prinaldi al topic Questione di stile
ho fatto la prova ed ho ricevuto questo messaggio:
MPLINK 4.45, Linker
Device Database Version 1.10
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - symbol 'sub0' has multiple definitions.
Errors : 1
evidentemente non ho capito bene. Ti riallego il file con le variazioni che ho effettuato.
Grazie ancora per la pazienza, ma quando mi metto in testa qualcosa mi piacerebbe arrivare a capire come fare, anche se ovviamente ci sono altre strade.
Pierluigi
/* main.c */
#include "lib1.h"
#include "lib2.h"
void main(void){
sub0();
sub1();
sub2();
}
/* lib1.h */
#ifndef _LIB1_H
#define _LIB1_H
#ifndef _SUB0_H
#define _SUB0_H
void sub0(void);
#endif
void sub1 (void);
#endif
/* lib1.c */
#include "lib1.h"
#ifndef _SUB0_C
#define _SUB0_C
void sub0(void){
;
}
#endif
void sub1(void){
;
}
/* lib2.h */
#ifndef _LIB2_H
#define _LIB2_H
#ifndef _SUB0_H
#define _SUB0_H
void sub0(void);
#endif
void sub2 (void);
#endif
#include "lib2.h"
#ifndef _SUB0_C
#define _SUB0_C
void sub0(void){
;
}
#endif
void sub2(void){
;
}
MPLINK 4.45, Linker
Device Database Version 1.10
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - symbol 'sub0' has multiple definitions.
Errors : 1
evidentemente non ho capito bene. Ti riallego il file con le variazioni che ho effettuato.
Grazie ancora per la pazienza, ma quando mi metto in testa qualcosa mi piacerebbe arrivare a capire come fare, anche se ovviamente ci sono altre strade.
Pierluigi
/* main.c */
#include "lib1.h"
#include "lib2.h"
void main(void){
sub0();
sub1();
sub2();
}
/* lib1.h */
#ifndef _LIB1_H
#define _LIB1_H
#ifndef _SUB0_H
#define _SUB0_H
void sub0(void);
#endif
void sub1 (void);
#endif
/* lib1.c */
#include "lib1.h"
#ifndef _SUB0_C
#define _SUB0_C
void sub0(void){
;
}
#endif
void sub1(void){
;
}
/* lib2.h */
#ifndef _LIB2_H
#define _LIB2_H
#ifndef _SUB0_H
#define _SUB0_H
void sub0(void);
#endif
void sub2 (void);
#endif
#include "lib2.h"
#ifndef _SUB0_C
#define _SUB0_C
void sub0(void){
;
}
#endif
void sub2(void){
;
}
Si prega Accedi o Crea un account a partecipare alla conversazione.
- prinaldi
- Autore della discussione
- Junior Member
Riduci
Di più
11 Anni 1 Giorno fa #7
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic Questione di stile
credo che anche nel file.c devi avere la stessa condizione, prova a cambiare #ifndef _SUB0_C con #ifndef _SUB0_H
Ste
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
11 Anni 1 Giorno fa #8
da prinaldi
Risposta da prinaldi al topic Questione di stile
ho Provato da questo errore:
MPLINK 4.45, Linker
Device Database Version 1.10
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - could not find definition of symbol 'sub0' in file './test.o'.
Errors : 1
Pierluigi
MPLINK 4.45, Linker
Device Database Version 1.10
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - could not find definition of symbol 'sub0' in file './test.o'.
Errors : 1
Pierluigi
Si prega Accedi o Crea un account a partecipare alla conversazione.
- prinaldi
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 25
- Ringraziamenti ricevuti 0
11 Anni 22 Ore fa #9
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic Questione di stile
devi includere anche i file .c... quindi devi fare
#include "lib1.c".. ecc.. ecc
inoltre la condizione #ifndef deve essere sempre la stessa, sia per file.h che per file .c che per libreria 1 che per libreria 2...
..almeno credo..fai la prova..
Ste
#include "lib1.c".. ecc.. ecc
inoltre la condizione #ifndef deve essere sempre la stessa, sia per file.h che per file .c che per libreria 1 che per libreria 2...
..almeno credo..fai la prova..
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.