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.