J'ai du mal à découvrir pourquoi je ne peux pas avoir la même fonction dans plusieurs fichiers source C. J'ai toujours pensé que je ne pouvais pas accéder aux fonctions dans un autre fichier source tant qu'elles ne sont pas déclarées dans un fichier d'en-tête.
Supposons que j'ai ce qui suit:
main.c -> comprend thread1.h & thread2.h
thread1.h -> déclare par exemple void * thread1 ();
thread1.c -> définit void * thread1 () {} et définit void Lock () {}
thread2.h -> déclare par exemple void * thread2 ();
Thread2.c -> définit void * thread2 () {} et définit void Lock () {}
Maintenant, GCC me dit que je ne peux pas faire ça!
gcc -pthread -wall -o exécutable main.c thread1.c thread2.c
Erreur: définition multiple de «verrouillage»
Donc ma question est maintenant:Comment puis-je accomplir ce que je veux?
Je ne pense pas que cela soit censé être impossible. Sinon, tout ce code source C disponible dans toutes les nombreuses bibliothèques C devrait être unique. (Non n'aurait aucun sens, ou ne le ferait-il?)
Je me suis donc dit il y a environ 3 heures qu'il devait y avoir une solution. Que je dois manquer quelque chose ici.
Eh bien, j'ai essayé de le googler ... mais d'une manière ou d'une autre, mes compétences Google ne m'ont pas aidé cette fois. N'y a-t-il vraiment aucun moyen de faire cela? Ou suis-je juste trop stupide pour le rechercher?
Merci d'avance,
leep