cerco di dichiarare una variabile globale config
:C: undefined riferimento ad una variabile quando si utilizza extern
//general.h
struct config_t {
int num;
};
extern struct config_t config; //The global variable
Poi ho definire variabile config nella general.c
:
//general.c
#include "general.h"
struct config_t config = {
num = 5;
};
Ma, quando cerco di utilizzare la variabile globale 'config' nella mia funzione principale, viene visualizzato l'errore:
undefined reference to `config':
Programma principale:
//main.c
#include "general.h"
main() {
config.num = 10;
}
Perché è?
Si riceve questo errore durante la compilazione o durante il collegamento? –
@SergeyL. - Durante il collegamento – Halona
Per evitare errori del linker, _always_ use _header guards_ '#ifndef MY_HEADER_H #define MY_HEADER_H/* contents */# endif'. Devi _ avere questo in ogni file di intestazione che tu abbia mai fatto. – Lundin