VC ++ EE 2010中的glload和LNK错误

时间:2012-08-13 17:22:53

标签: visual-studio-2010 opengl linker glload

我正在尝试使用非官方OpenGL SDK中的glload,但我收到了LNK错误:

1>  LINK : C:\Users\T\documents\visual studio 2010\Projects\testi\Debug\testi.exe not found or not built by the last incremental link; performing full link
1>glloadD.lib(gll_gl_ext.obj) : error LNK2019: unresolved external symbol __imp__wglGetProcAddress@4 referenced in function _WinGetProcAddress
1>glloadD.lib(wgll_ext.obj) : error LNK2001: unresolved external symbol __imp__wglGetProcAddress@4 
1>C:\Users\T\documents\visual studio 2010\Projects\testi\Debug\testi.exe : fatal error LNK1120: 1 unresolved externals


#include <glload/gl_all.h>
#include <glload/gll.hpp>

void main()
{
    glload::LoadFunctions();
}

链接器/附加依赖项:glloadD.lib 问题在哪里?

修改1:

首先,我使用Premake为vs2010生成构建文件。然后我建立了所有的库。在我的项目中,我为这些库设置了附加包含目录,附加库目录和附加依赖项。我想从这个页面运行一个例子:link但我忘了在加载opengl函数之前创建OpenGL上下文。我在这个项目中不需要一个窗口所以我只是调用glutInit,但是我在0x5bfed398(msvcr100d.dll)上得到一个未处理的异常

#include <glload/gl_all.h>
#include <glload/gll.hpp>
#include <freeglut/freeglut.h>

int main(int argc, char* argv[])
{
    glutInit(&argc, argv);
    glload::LoadFunctions();
}

编辑2:

在glload :: LoadFunctions之前调用glutCreateWindow似乎是必要的。以下代码有效:

#include <glload/gl_all.h>
#include <glload/gll.hpp>
#include <freeglut/freeglut.h>

int main(int argc, char* argv[])
{
    glutInit(&argc, argv);
    glutCreateWindow("");
    glload::LoadFunctions();
}

1 个答案:

答案 0 :(得分:0)

解决方案是在初始化GlLoad之前创建工作上下文。每次我用GLSDK开始一个OpenGL项目时,我都遇到过这个问题。