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.c
ehello_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.