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.