Muy bien, he estado tratando de trabajar con esto durante más tiempo, y parece que no puedo hacer que funcione correctamente. Tengo tres archivos, main.c
, hello_world.c
y hello_world.h
. Por alguna razón, no parecen compilar muy bien, y realmente no puedo entender por qué ...C problema del encabezado: #include y "referencia indefinida"
Aquí están mis archivos fuente. En primer lugar hello_world.c:
#include <stdio.h>
#include "hello_world.h"
int hello_world(void) {
printf("Hello, Stack Overflow!\n");
return 0;
}
Entonces hello_world.h, simple:
int hello_world(void);
Y, finalmente, main.c:
#include "hello_world.h"
int main() {
hello_world();
return 0;
}
Cuando lo puse en GCC, esto es lo 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 me puede ayudar? Estoy realmente atrapado en esto, pero estoy 99 por ciento seguro de que es una solución realmente simple.
Gracias! Una de esas pequeñas cosas que hacen tropezar a los programadores. :) – user1018501
Aunque los protectores de encabezado son innecesarios (en este ejemplo) es una buena pista – KevinDTimm
@ user1018501: Si esta respuesta resolvió su problema, debe aceptarlo. – Job