当我尝试编译VS 2015 C ++项目时,我得到了9个未解决的外部符号错误。当我尝试将GLEW编译为我的项目的一部分(使用源代码)时发生错误。 Google搜索显示此错误通常是由于缺少OpenGL库引起的,但我已经在使用SDL2,据我所知,SDL2的源代码中包含OpenGL。这是我尝试编译时的输出。
Error LNK2001 unresolved external symbol __imp__wglGetCurrentDC@0 glew.obj 1
Error LNK2001 unresolved external symbol __imp__wglGetProcAddress@4 glew.obj 1
Error LNK2001 unresolved external symbol __imp__glGetString@4 glew.obj 1
Error LNK2001 unresolved external symbol __imp__glGetIntegerv@8 glew.obj 1
Error LNK2001 unresolved external symbol __imp__wglCreateContext@4 glewinfo.obj 1
Error LNK2001 unresolved external symbol __imp__wglDeleteContext@4 glewinfo.obj 1
Error LNK2001 unresolved external symbol __imp__wglMakeCurrent@8 glewinfo.obj 1
Error LNK2001 unresolved external symbol __imp__wglGetCurrentContext@0 visualinfo.obj 1
Error LNK2001 unresolved external symbol _gluGetString@ 4visualinfo.obj 1
Error LNK1120 9 unresolved externals Executable.exe 1
如果我需要在项目中包含另一个库,我可以在哪里下载它?此外,如果有,它有源代码吗?如果可能的话,我宁愿避免使用.dll。
编辑:这不仅仅是未解析的外部符号的一般示例。我问的是我需要包含哪些库来修复错误。
答案 0 :(得分:0)
要将GLEW编译为添加到项目中的源文件,请使用以下步骤:
唯一需要的文件是glew.c
。删除glewinfo.c
和visualinfo.c
- 这些只是GLEW提供的示例程序。此步骤将解决缺少的glu*
符号。
将GLEW_STATIC
添加到预处理程序定义列表中。默认是将GLEW编译为DLL。
将opengl32.lib
添加到附加依赖项列表(在链接器/输入下)。这将解决丢失的wgl*
符号。
或者,您可以考虑使用GLEW的build/vc12
子文件夹下包含的项目文件来构建静态库并与其链接,或者将项目glew_static
添加到您的解决方案中。上面的步骤2和3仍然是必要的。
wglGetCurrentDC()
有一个表,其中包含提供函数的头,库和DLL。