C-Header-Problem: #include und "undefinierte Referenz"

In Ordnung, ich habe die längste Zeit versucht, damit zu arbeiten, und ich kann einfach nicht scheinen, dass es richtig funktioniert. Ich habe drei Dateien,main.c, hello_world.c, undhello_world.h. Aus irgendeinem Grund scheinen sie nicht gut zu kompilieren, und ich kann wirklich nicht herausfinden, warum ...

Hier sind meine Quelldateien. Zuerst hallo_welt.c:

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

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

Dann hallo_welt.h, einfach:

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

Und zum Schluss main.c:

<code>#include "hello_world.h"

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

Wenn ich es in GCC stelle, bekomme ich Folgendes:

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

Kann mir jemand helfen? Ich bin fest entschlossen, aber ich bin mir zu 99 Prozent sicher, dass es eine wirklich einfache Lösung ist.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage