Va bene, ho cercato di lavorare con questo per il tempo più lungo, e semplicemente non riesco a farlo funzionare correttamente. Ho tre file, main.c
, hello_world.c
e hello_world.h
. Per qualche ragione non sembrano compilare bene, e davvero non riesco a capire perché ...Problema dell'intestazione C: #include e "riferimento non definito"
Ecco i miei file sorgente. Prima hello_world.c:
#include <stdio.h>
#include "hello_world.h"
int hello_world(void) {
printf("Hello, Stack Overflow!\n");
return 0;
}
Poi hello_world.h, semplice:
int hello_world(void);
E poi finalmente main.c:
#include "hello_world.h"
int main() {
hello_world();
return 0;
}
Quando ho messo in GCC, questo è ciò che Ottengo:
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
Chiunque può darmi una mano? Sono davvero bloccato su questo, ma sono sicuro al 99% che sia una soluzione davvero semplice.
Grazie! Una di quelle piccole cose che fanno scattare i programmatori. :) – user1018501
Anche se le protezioni dell'intestazione non sono necessarie (in questo esempio) è un buon suggerimento – KevinDTimm
@ user1018501: Se questa risposta ha risolto il tuo problema, dovresti accettarlo. – Job