在废弃部分'.bss'中定义的main.o部分'.text'中引用的全局变量

时间:2012-12-09 05:50:33

标签: c gcc

在我的main.c中,我有int cursor = 0;

稍后在函数中使用它,我使用cursor += 1

当我编译/链接时,我收到一个错误:

cursor' referenced in section .text' of main.o: defined in discarded section .bss' of main.o

我对使用GCC比较陌生。我之前曾经使用过MSVC,但我从未遇到过这样的错误。有什么东西需要添加到链接器脚本中,所以它不会丢弃BSS部分吗?

由于

1 个答案:

答案 0 :(得分:1)

我不确定它是否会有所帮助。你可以尝试:

static int cursor = 0;

你可以尝试的另一件事是:

int cursor;

作为全局然后在main()中放置cursor = 0;也许它不喜欢初始化全局?

BSS适用于未初始化的全局变量。所以出于某种原因,我认为它没有初始化你的游标变量。因此,将初始化移动到main()例程可能会修复它。