0

私のゲームには、次のコードを含む更新関数があります。

void DrawMiniFPSCounter();
DrawMiniFPSCounter();

このDrawMiniFPSCounter()関数は、ビルドターゲットの一部であるminiFPSCounter.cppというファイルで宣言されています(私はXcodeを使用しています)。ビルド中に、DrawMiniFPSCounterシンボルが見つからないというリンカーエラーが発生します。上記の宣言を削除して呼び出しDrawMiniFPSCounter()てみましたが、コンパイル中に「シンボルが見つかりません」というエラーが発生します。リンカがこのシンボルを見つけるのに問題があるのはなぜですか?プロジェクトでシンボルが解決される順序と関係がありますか?

nm hrMiniFPSCounter.o | grep Draw編集:ビルドディレクトリでコマンドを実行すると、次の出力が得られました:

00000000 T __Z15DrawMiniCounteriiiii
0002d040 S __Z15DrawMiniCounteriiiii.eh
00000a00 T __Z18DrawMiniFPSCounterv
0002d148 S __Z18DrawMiniFPSCounterv.eh
00000560 t __ZL9DrawDigitiiib
0002d128 s __ZL9DrawDigitiiib.eh

これは正常ですか?関数名の最後に余分な文字があるのはなぜですか?

4

1 に答える 1

1

私の経験では、最も一般的な「エラー」:

  1. ファイルは(本当に)コンパイルされましたか?
  2. それは(本当に)正しくリンクされていましたか?
  3. 関数にあなたが思った名前を付けましたか?
  4. 新しい名前空間の問題:)

miniFPSCounter.cppファイルがコンパイルされている(/プロジェクトに正しい方法で組み込まれている)ことを確認しますか?私はあなたが経験していることはいくつかの異なる原因によって引き起こされる可能性があると思いますが、より多くの情報が不足していると私は言います:cppファイルがコンパイルされていることを確認してください(おそらくコンパイルを引き起こすいくつかの構文エラーを導入しますそれが実際にコンパイルされている場合はエラー)そしてそれについて確信が持てたら、他のもの(正しくリンクされているなど)のチェックを開始できます

編集:チェックリストを一番上に置きます。

于 2012-10-15T09:14:34.663 に答える