Estoy teniendo dificultades para descubrir por qué no puedo tener la misma función en varios archivos de origen C. Siempre pensé que no puedo acceder a las funciones en otro archivo fuente siempre que no sean declarados en un archivo de encabezado.
Supongamos que tengo lo siguiente:
Main.c -> incluye Thread1.h y Thread2.h
Thread1.h -> declara Eg void * Thread1 ();
thread1.c -> define void * thread1 () {} y define void bloqueo () {}
Thread2.h -> declara Eg Void * Thread2 ();
thread2.c -> define void * thread2 () {} y define void bloqueo () {}
¡Ahora GCC me dice que no puedo hacer eso!
GCC -PTHREAD -WALL -O Ejecutable Main.C Thread1.C Thread2.C
Error: definición múltiple de 'bloqueo'
Entonces mi pregunta ahora es:¿Cómo puedo lograr lo que quiero?
No creo que esto sea imposible. De lo contrario, todo ese código fuente C disponible en todas las bibliotecas C necesitaría ser único. (nah no tendría sentido, ¿o lo haría?)
Así que pensé para mí mismo hace unos 3H que debe haber una solución. Que me falta algo aquí.
Bueno, intenté buscarlo en Google ... pero de alguna manera mis habilidades de Google no me ayudaron esta vez. ¿Realmente no hay forma de hacer esto? ¿O soy solo estúpido para buscarlo?
Gracias por adelantado,
leep