未定义的全局变量引用

Geo*_*rge 1 c global-variables extern

我正在使用C和Quake 3/ioquake引擎.请注意,这不是游戏引擎特定的问题,它纯粹是一种C语言查询.

g_entities是引擎中全局定义的变量.extern此变量还使用了一个语句.

.c引擎中的许多其他文件调用此变量没有问题,但是当我从我的代码执行此操作时,我undefined reference to g_entities在编译时遇到链接器错误.

我的代码:

// get entity information for this bot (e.g. health etc)
gentity_t *entity;
entity = &g_entities[1];
Run Code Online (Sandbox Code Playgroud)

制作错误:

/home/george/Desktop/ioquake/ioquake-latest/ioquake3/code/botlib/be_ai_char.c:1196: undefined reference to `g_entities'
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何C大师可以提供的建议,这可能会让我找到解决方案.谢谢.

Zif*_*ion 6

这不是头文件问题.您需要链接包含g_entities定义的对象.这可以是目标文件或库.有时,链接事物的顺序也会产生影响.

你知道g_entities定义在哪里吗?其他代码引用此符号,它如何解决它?它与之相关联的是什么?