GLFW链接问题Visual Studio 2012

时间:2012-12-15 04:19:17

标签: c++ glfw

这让我很生气,我想在第4.2.1节之后静态链接到GLFW.lib。提供的readme.html文件中我已将glfw.lib和opengl32.lib添加到VS上链接器的其他依赖项部分。

我还将dir包括glfw.lib添加到链接器>下的其他库目录部分。一般。

当然我已经在我的项目中包含了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 );
}

我做错了什么?

2 个答案:

答案 0 :(得分:3)

确保您的.exe文件中包含glfw.dll文件夹。如果这不会有帮助,请添加另一个库glu32.lib。

我通过在main函数之前添加这个来在代码中添加库。有了这个,你就可以看到你所拥有的图书馆,而无需通过选项和菜单。

#pragma comment(lib, "GLFW.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")

答案 1 :(得分:0)

也许原因是因为您只在一种构建模式下链接到这些库,比如发布。

第二个可能的原因:(如果我错了,请纠正我,因为我不是100%肯定这一点)。 LIB文件可能已在不同的编译器中构建。例如,LIB是在MinGW中编译的,您使用MSVC ++编译器链接到它。

第三个可能的原因:考虑使用的是什么版本的GLFW(如32位,64位)。