3

Valgrindプラグインを使用してUbuntu12.04でEclipseIDEを実行しています。私はかなり長い間C++でゲームに取り組んできましたが、どこかでメモリエラーが発生しているようです。通常、私はこれらをValgrindでトレースします。ただし、valgrindを実行すると、glutが初期化に失敗します。valgrindを使用していない場合、ゲームは問題なく初期化されることに注意してください。私の主な機能のコードは次のとおりです。

int main(int argc, char** argv) {
  char windowTitle[12] = "Game Window";
  printf("Initializing Glut...\n");
  glutInit(&argc, argv);
  printf("Glut initialized!\n");
  alutInit(&argc, argv);
  Game_Object* game = new Game_Object(windowTitle, 1200, 675, argc, argv);
  delete game;
  printf("game ended\n");
  return 0;
}

結果として得られるコンソールへの出力は次のとおりです。

Initializing Glut
freeglut (/home/dsnettleton/Documents/Programming/Eclipse/workspace/Plutoids/Debug/Plutoids): failed to open display ''

明らかに、valgrindを実行しても、プログラムはそれほど進んでいません。私の開発のこのような最終段階にいることは本当にがっかりしますが、メモリエラーを取り除くために立ち往生するだけです。過剰な初期化を妨げているのは何ですか?問題を解決するにはどうすればよいですか?

4

2 に答える 2

5

これは私の推測です。IDEに$DISPLAY環境変数がない可能性があります。$DISPLAYどこかで、 Valgrindを起動する前に設定する環境を構成する必要があります。

ターミナルを起動してecho $DISPLAY。その値はおそらく:0.0です。

最悪の場合、setenv()Cコード内で使用するか、Valgrindを起動するコマンドラインでDISPLAYを設定してみます(これらのケースはいずれもテストされておらず、機能しない可能性があります)。

于 2012-05-04T12:51:46.263 に答える
1

また、Eclipse内にこの環境変数DISPLAY:=0.0を追加する必要があります。実行可能ファイルの起動構成で、[環境]タブに表示変数を追加するか、環境を継承することを選択します。

Run->RunConfiguration...->環境

今クリック

新しい

と追加

ディスプレイ:0

初期化

于 2013-08-02T12:52:02.383 に答える