Problem z nagłówkiem C: #include i „undefined reference”

W porządku, próbowałem pracować z tym najdłużej i po prostu nie wydaje mi się, żeby działało to poprawnie. Mam trzy pliki,main.c, hello_world.c, ihello_world.h. Z jakiegokolwiek powodu nie wydają się ładnie kompilować, a ja naprawdę nie mogę pojąć, dlaczego ...

Oto moje pliki źródłowe. Pierwszy hello_world.c:

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

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

Następnie hello_world.h, proste:

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

A potem w końcu main.c:

<code>#include "hello_world.h"

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

Kiedy umieszczam go w GCC, otrzymuję to:

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

Czy ktoś może mi pomóc? Naprawdę na tym utknąłem, ale jestem w 99 procentach pewien, że to naprawdę prosta poprawka.

questionAnswers(5)

yourAnswerToTheQuestion