Sto avendo un momento difficile capire perché non posso avere la stessa funzione in diversi file di origine C.Ho sempre pensato che non posso accedere alle funzioni in un altro file di origine, purché non dichiarata in un file di intestazione.
Supponiamo che ho i seguenti:
principale.c -> include thread1.h & thread2.h
thread1.h -> dichiara ad es.void * thread1();
thread1.c -> definisce void * thread1(){} e definisce void lock(){}
thread2.h -> dichiara ad es.void * thread2();
thread2.c -> definisce void * thread2(){} e definisce void lock(){}
Ora gcc mi dice che non posso farlo!
gcc -pthread -Wall -o eseguibile principale.c thread1.c thread2.c
ERRORE:definizione di più di `blocco'di
Quindi la mia domanda ora è:
Come posso ottenere quello che voglio?
Non credo che questo è pensato per essere impossibile.Altrimenti tutto quello che C codice sorgente disponibile all'interno di tutte le numerose librerie C avrebbe bisogno di essere unico.(nah non avrebbe alcun senso, o sarebbe?)
Così ho pensato di circa 3 ore fa, che ci deve essere una soluzione.Che mi manca qualcosa qui.
Bene ho provato googling è ...ma in qualche modo il mio google abilità non mi ha aiutato questa volta.Non c'è proprio modo di fare questo?O io sono stupido cercare?
Grazie in anticipo,
leep