1

我正在使用 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];

制作错误:

/home/george/Desktop/ioquake/ioquake-latest/ioquake3/code/botlib/be_ai_char.c:1196: undefined reference to `g_entities'

我将不胜感激任何 C 大师可以提供的任何建议,这些建议可能会为我指明解决方案。谢谢。

4

2 回答 2

6

This is not a header file issue. You need to link against an object that contains the definition of g_entities. This could be an object file or a library. Sometimes the order in which you link things also makes a difference.

Do you know where g_entities is defined? The other code references this symbol, how doe it resolve it? What does it link against?

于 2013-04-22T01:35:15.293 回答
1

是不是因为链接器的输入集中缺少实际定义 g_entities(没有 extern)的模块(以及很可能引用它的所有其他模块)?

于 2013-04-22T01:30:26.450 回答