7

GLFW3の機能glfwCreateWindowでウィンドウを作成するのに苦労しています。glfwInit 関数が成功を返したにもかかわらず、エラー番号と説明をほとんど出力するだけのエラー コールバック関数を設定しました。GLFW ライブラリは初期化されていません。

ここに私のコードからの抜粋があります

// Error callback function prints out any errors from GFLW to the console
static void error_callback( int error, const char *description )
{
    cout << error << '\t' << description << endl;
}


bool Base::Init()
{
    // Set error callback
    /*!
     *  According to the documentation this can be use before glfwInit,
     *  and removing won't change anything anyway
     */
    glfwSetErrorCallback( error_callback );



    // Initialize GLFW
    /*!
     *  This return succesfull, but...
     */ 
    if( !glfwInit() )
    {
        cout << "INITIALIZER: Failed to initialize GLFW!" << endl;
        return false;
    }
    else
    {
        cout << "INITIALIZER: GLFW Initialized successfully!" << endl;
    }



    // Create window
    /*!
     *  When this  is called, or any other glfw functions, I get a
     *  "65537    The GLFW library is not initialized" in the console, through
     *  the error_callback function
     */
    window = glfwCreateWindow( 800,
                               600,
                               "GLFW Window",
                               NULL,
                               NULL );


    if( !window )
    {
        cout << "INITIALIZER: Failed to create window!" << endl;
        glfwTerminate();
        return false;
    }


    // Set window to current context
    glfwMakeContextCurrent( window );


    ...


    return true;
}

そして、これがコンソールに出力されたものです

INITIALIZER: GLFW Initialized succesfully!
65537    The GLFW library is not initialized
INITIALIZER: Failed to create window!

セットアップが完全に正しくないため、エラーが発生していると思いますが、その場所で見つけたものでできる限りのことをしました

glfw.org から Windows 32 をダウンロードし、そこから 2 つのインクルード ファイルを minGW/include/GLFW に貼り付け、2 つの .a ファイル (lib-mingw フォルダーから) を minGW/lib と dll に貼り付けました。 mingw フォルダー、Windows/System32 に

code::blocks で、ビルド オプション -> リンカー設定から、ダウンロードから 2 つの .a ファイルをリンクしました。より多くのものをリンクする必要があると思いますが、それらのものを何から、またはどこから取得する必要があるかを理解できます。

4

2 に答える 2

4

codeblocks と mingw を再インストールしてみましたが、問題は解決しました。

GLFW3 は何らかの理由で以前のバージョンを同時にインストールすることを好まないようです。他の誰かが同様の問題を抱えている場合は、それを試してください。

于 2013-07-03T16:51:29.267 に答える
1

Cocos 3.8.1 と 3.10 で同様の問題が発生しました。私はコードブロックや mingw をインストールしたことがないので、インストールする意味がありませんでした。

cocos ディレクトリにある GLFW.lib ファイルが古くなっています。

http://www.glfw.org/download.htmlに移動し、プロジェクトの lib ファイルを最新のものに置き換えると、エラーが解決する場合があります。

于 2016-04-15T18:56:39.327 に答える