我尝试声明一个全局变量config
:
//general.h
struct config_t {
int num;
};
extern struct config_t config; //The global variable
然后我在中定义配置变量general.c
:
//general.c
#include "general.h"
struct config_t config = {
num = 5;
};
但是,当我尝试在主函数中使用全局变量'config'时,出现错误:
undefined reference to `config':
主程序:
//main.c
#include "general.h"
main() {
config.num = 10;
}
为什么?
这看起来像一个链接器错误。您需要确保正确链接可执行文件:
cc -c general.c
cc -c main.c
cc general.o main.o
./a.out
该-c
标志指示编译器尚未链接。为了链接包含config
在那一刻的目标文件,需要可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句