Tema del encabezado C: #include y "referencia indefinida"
Bien, he estado tratando de trabajar con esto durante más tiempo, y parece que no puedo hacerlo funcionar bien. Tengo tres archivos,main.c
, hello_world.c
yhello_world.h
. Por alguna razón, no parecen compilarse bien, y realmente no puedo entender por qué ...
Aquí están mis archivos fuente. Primero hello_world.c:
<code>#include <stdio.h> #include "hello_world.h" int hello_world(void) { printf("Hello, Stack Overflow!\n"); return 0; } </code>
Entonces hello_world.h, simple:
<code>int hello_world(void); </code>
Y luego finalmente main.c:
<code>#include "hello_world.h" int main() { hello_world(); return 0; } </code>
Cuando lo puse en GCC, esto es lo que obtengo:
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
¿Alguien capaz de ayudarme? Estoy realmente atascado en esto, pero estoy 99 por ciento seguro de que es una solución muy simple.