Tema del encabezado C: #include y "referencia indefinida"

Bien, he estado tratando de trabajar con esto durante más tiempo, y parece que no puedo hacerlo funcionar bien. Tengo tres archivos,main.c, hello_world.cyhello_world.h. Por alguna razón, no parecen compilarse bien, y realmente no puedo entender por qué ...

Aquí están mis archivos fuente. Primero hello_world.c:

<code>#include <stdio.h>
#include "hello_world.h"

int hello_world(void) {
  printf("Hello, Stack Overflow!\n");
  return 0;
}
</code>

Entonces hello_world.h, simple:

<code>int hello_world(void);
</code>

Y luego finalmente main.c:

<code>#include "hello_world.h"

int main() {
  hello_world();
  return 0;
}
</code>

Cuando lo puse en GCC, esto es lo que obtengo:

cc     main.c   -o main
/tmp/ccSRLvFl.o: In function `main':
main.c:(.text+0x5): undefined reference to `hello_world'
collect2: ld returned 1 exit status
make: *** [main] Error 1

¿Alguien capaz de ayudarme? Estoy realmente atascado en esto, pero estoy 99 por ciento seguro de que es una solución muy simple.

Respuestas a la pregunta(5)

Su respuesta a la pregunta