繁体   English   中英

未定义对全局变量的引用

[英]Undefined reference to global variable

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

g_entities是在引擎中全局定义的变量。 此变量也使用extern语句。

引擎中的许多其他.c文件都可以毫无问题地调用此变量,但是当我从代码中执行此操作时,在编译时会得到undefined reference to g_entities链接器错误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大师可以提供的建议,这些建议可能会为我提供解决方案。 谢谢。

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

您知道在哪里定义g_entities吗? 其他代码引用了此符号,它如何解决? 它链接到什么?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM