0

私の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 セクションを破棄しないようにリンカー スクリプトに追加する必要があるものはありますか?

ありがとう

4

1 に答える 1

1

それが役立つかどうかはわかりません。あなたは試すことができます:

static int cursor = 0;

あなたが試すことができる別のことは、置くことです:

int cursor;

グローバルとして、次に main() put cursor=0; グローバルを初期化するのが好きではないのでしょうか?

BSS は初期化されていないグローバル用です。何らかの理由で、カーソル変数を初期化していないと思います。そのため、初期化を main() ルーチンに移動すると、修正される可能性があります。

于 2012-12-09T05:55:50.480 に答える