2

これは私を怒らせています。セクション4.2.1に従って、GLFW.libに静的にリンクしたいと思います。VSのリンカーの追加の依存関係セクションにglfw.libとopengl32.libを追加した場合のreadme.htmlファイルの。

また、glfw.libを含むdirを、linker>generalの下の追加のライブラリディレクトリセクションに追加しました。

そしてもちろん、プロジェクトにglfw.hファイルをインクルードしましたが、まだ取得しています...

Error   1   error LNK2019: unresolved external symbol _glfwInit referenced in function _main    C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Spark\main.obj   Spark
Error   2   error LNK2019: unresolved external symbol _glfwTerminate referenced in function _main   C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Spark\main.obj   Spark
Error   3   error LNK2019: unresolved external symbol _glfwOpenWindow referenced in function _main  C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Spark\main.obj   Spark
Error   4   error LNK2019: unresolved external symbol _glfwSwapBuffers referenced in function _main C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Spark\main.obj   Spark
Error   5   error LNK2019: unresolved external symbol _glfwGetWindowParam referenced in function _main  C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Spark\main.obj   Spark
Error   6   error LNK2019: unresolved external symbol _glfwGetKey referenced in function _main  C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Spark\main.obj   Spark
Error   7   error LNK1120: 6 unresolved externals   C:\Users\Smith_000\Documents\Visual Studio 2012\Projects\Spark\Debug\Spark.exe  1   1   Spark

次の(例)コードで...

#include <glfw.h>
#include <stdlib.h>

int main( void )
{
    int running = GL_TRUE;

    // Initialize GLFW
    if( !glfwInit() )
    {
        exit( EXIT_FAILURE );
    }

    // Open an OpenGL window
    if( !glfwOpenWindow( 300,300, 0,0,0,0,0,0, GLFW_WINDOW ) )
    {
        glfwTerminate();
        exit( EXIT_FAILURE );
    }

    // Main loop
    while( running )
    {
        // OpenGL rendering goes here...
        glClear( GL_COLOR_BUFFER_BIT );
        // Swap front and back rendering buffers
        glfwSwapBuffers();
        // Check if ESC key was pressed or window was closed
        running = !glfwGetKey( GLFW_KEY_ESC ) &&
        glfwGetWindowParam( GLFW_OPENED );
    }

    // Close window and terminate GLFW
    glfwTerminate();

    // Exit program
    exit( EXIT_SUCCESS );
}

私は何が間違っているのですか?

4

2 に答える 2

3

.exeファイルと一緒にフォルダにglfw.dllがあることを確認してください。これで問題が解決しない場合は、別のライブラリglu32.libを追加してください。

main関数の前にこれを追加することにより、コードにライブラリを追加するために使用します。これを使用すると、オプションやメニューを調べなくても、どのライブラリを使用できるかがわかります。

#pragma comment(lib, "GLFW.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
于 2013-01-01T03:48:50.867 に答える
0

おそらくその理由は、リリースなどの1つのビルドモードでのみこれらのライブラリにリンクしているためです。

2番目に考えられる理由:(私が間違っている場合は、100%確信が持てないので訂正してください)。LIBファイルは別のコンパイラで作成されている可能性があります。たとえば、LIBはMinGWでコンパイルされており、MSVC++コンパイラでリンクしています。

3番目に考えられる理由:使用しているGLFWのバージョンを検討してください(32ビット、64ビットなど)。

于 2012-12-15T04:48:36.323 に答える