Hal*_*ona 8 c global-variables extern
我尝试声明一个全局变量config:
//general.h
struct config_t {
int num;
};
extern struct config_t config; //The global variable
Run Code Online (Sandbox Code Playgroud)
然后我在下面定义配置变量general.c:
//general.c
#include "general.h"
struct config_t config = {
num = 5;
};
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在我的main函数中使用全局变量'config'时,我得到错误:
undefined reference to `config':
Run Code Online (Sandbox Code Playgroud)
主程序:
//main.c
#include "general.h"
main() {
config.num = 10;
}
Run Code Online (Sandbox Code Playgroud)
为什么?
这看起来像链接器错误.您需要确保正确链接您的可执行文件:
cc -c general.c
cc -c main.c
cc general.o main.o
./a.out
Run Code Online (Sandbox Code Playgroud)
该-c标志指示您的编译器尚未链接.为了链接包含config需要在那一刻可用的对象文件.