Problema do cabeçalho C: #include e "referência indefinida"

Tudo bem, eu tenho tentado trabalhar com isso por muito tempo, e simplesmente não consigo fazer com que funcione direito. Eu tenho três arquivos,main.c, hello_world.cehello_world.h. Por alguma razão eles não parecem compilar muito bem, e eu realmente não consigo entender porque ...

Aqui estão meus arquivos de origem. Primeiro hello_world.c:

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

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

Então hello_world.h, simples:

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

E então finalmente main.c:

<code>#include "hello_world.h"

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

Quando eu coloco no GCC, é isso que eu recebo:

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

Alguém capaz de me ajudar? Eu estou realmente preso a isso, mas tenho 99% de certeza que é uma solução realmente simples.

questionAnswers(5)

yourAnswerToTheQuestion