4

Ubuntu (9.04) で GLFW ベースの C プログラムをコンパイルして実行すると、ウィンドウを開こうとすると失敗します (最新の GLFW をインストールすると、正常にコンパイルされます)。デフォルトがうまくいくことを期待して、解像度を 300x300 まで下げてさまざまな解像度を試し、ビット深度をゼロのままにしました。

関連するコードの読み取り (サンプル ファイルに基づいて、メイン ファイルの先頭から直接切り取ったものgears.c):

// File: main.c
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <GL/glfw.h>

#ifndef PI
#define PI 3.141592654
#endif

int main(int argc, char* argv[])
{
    // Initialize GLFW:
    glfwInit();

    if (!glfwOpenWindow(300, 300, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) // Yo failure!
    {
        printf("Window open failed.\n");
        glfwTerminate();
        return 0;
    }

    glfwSetWindowTitle("...");

    ...

    // Clean up:
    glfwTerminate();

    return 0;
}

その他の注目すべき事実は次のとおりです。

  • VirtualBox 3.0.2 内で Ubuntu を実行し、512 MB の RAM を使用して構成し、3D アクセラレーションを有効にし、64 MB の VRAM を使用し、Guest Additions を正常にインストールしました
  • glxgears> 300 FPS でも正常に動作します
  • を使用して構築されたGLFWmake-x11
  • メイクファイル コマンド ライン:

    gcc `pkg-config --cflags libglfw` main.c -o program `pkg-config --libs libglfw` -lglfw -lGLU -lGL -lm

  • Cに関する Mark のヒント- Debian で GLFW ウィンドウが開かない

編集:

より派手なエラー メッセージを抽出する方法はありますか? またはデバッグgetLastErrorDesc()ログファイルはありますか?

4

4 に答える 4

2

Ubuntu にパッケージ化されたバージョンまたは GLFW Subversion リポジトリのバージョンを使用していますか? Subversion リポジトリの GLXFBConfig 選択は、カスタム Visual 選択が削除されたため、かなり長い間壊れていたため、不適切なコードを受け取った可能性があります。

その場合は、Ubuntu にバンドルされているバージョンに戻すか、Subversion から新しいツリーをプルする必要があります。

于 2009-11-04T01:47:52.410 に答える
1

ねえ、私は同じ問題に苦しんでいます。

最後に、これを解決する方法を見つけました。「make x11-install」を使用してライブラリをインストールしていました。

手順は次のようになります。

  1. 「make x11-clean」を実行します (必要ありません)。

  2. vim または任意のエディターを使用して、glfw/lib/x11 フォルダー (およびプロセス 1 を実行しない場合は Makefile.x11) の Makefile.x11.in を編集し、PREFIX を「/usr/local」から「/user」に変更します。

  3. インストールのために「make x11-dist-install」を実行します

その「dist-install」が重要かどうか、または場所を試したことはありませんが、私にとっては完全に機能します。

于 2012-06-11T05:22:04.227 に答える
0

GLFW Web サイトから .tar.bz2 として直接取得した GLFW 2.7.7 でも同じ問題が発生しました。glfwOpenWindowヒントやビット深度が指定されていない場合でも、常に false を返します。

libglfw を自分でビルドし、rpath リンク フラグを使用して作業ディレクトリからロードしていました。Ubuntu libglfw がインストールされていませんでした。

Ubuntu リポジトリ バージョン ( sudo apt-get install libglfw-dev) を使用すると、ウィンドウが期待どおりに開きます。

2 つのライブラリ バージョンの大きな違いの 1 つは、glfwGetVideoModes を呼び出した結果です。壊れた GLFW 2.7.7 では、これはデスクトップの解像度と深度のみを返しました。動作中のバージョンである Ubuntu パッケージ 2.7.2-1 では、予想されるさまざまなモードが返されました。

于 2013-02-08T19:50:16.503 に答える
0

0bpp でウィンドウを開こうとしていますが、もちろん失敗します :)

これを試して:

    glfwOpenWindow(
                   800, 600,   // Window size
                   8, 8, 8, 8, // bitdepth per channel (RGBA)
                   24,         // Z buffer bitdepth
                   0,          // Aux buffer bitdepth
                   GLFW_WINDOW // Window
                  );

また、最新の Ubuntu には、追加のライブラリ (libbrandr など) をリンクするのを忘れた場合に備えて、実際にインストールできる libglfw-dev というパッケージがあります。

于 2009-10-22T23:01:45.293 に答える