【问题标题】:How do I link to OpenGL?如何链接到 OpenGL?
【发布时间】:2012-02-17 16:39:56
【问题描述】:

我已经安装了 VS 2008,并且我已经复制了这些库:

  • opengl32.lib
  • glu32.lib
  • glut32.lib

放入library文件夹,对应的头文件放入include文件夹。

我也在项目属性->链接器->输入->附加依赖项中添加了这些文件:

  • Opengl32.lib
  • glu32.lib
  • glut32.lib

我必须使用引号来添加它们吗?像这样:"Opengl32.lib" "glu32.lib" "glut32.lib"

我创建了以下程序,它只显示一个窗口:

#include<GL/glut.h>

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glLoadIdentity();
    glFlush();
}

void main(int argc,char **argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
    glutInitWindowSize(500,500);
    glutCreateWindow("3D gasket");
    glutDisplayFunc(display);
    glClearColor(1.0,1.0,1.0,1.0);
    glutMainLoop();
}

但链接失败,输出如下:

1>------ Build started: Project: vs, Configuration: Debug Win32 ------
1>Linking...
1>pr1.obj : error LNK2019: unresolved external symbol _glFlush referenced in function "void __cdecl display(void)" (?display@@YAXXZ)
1>pr1.obj : error LNK2019: unresolved external symbol _glLoadIdentity referenced in function "void __cdecl display(void)" (?display@@YAXXZ)
1>pr1.obj : error LNK2019: unresolved external symbol _glClear referenced in function "void __cdecl display(void)" (?display@@YAXXZ)
1>pr1.obj : error LNK2019: unresolved external symbol _glutMainLoop referenced in function _main
1>pr1.obj : error LNK2019: unresolved external symbol _glClearColor referenced in function _main
1>pr1.obj : error LNK2019: unresolved external symbol _glutDisplayFunc referenced in function _main
1>pr1.obj : error LNK2019: unresolved external symbol _glutCreateWindow referenced in function _main
1>pr1.obj : error LNK2019: unresolved external symbol _glutInitWindowSize referenced in function _main
1>pr1.obj : error LNK2019: unresolved external symbol _glutInitDisplayMode referenced in function _main
1>pr1.obj : error LNK2019: unresolved external symbol _glutInit referenced in function _main
1>D:\Program Files\Microsoft Visual Studio 9.0\projects\vs\Debug\vs.exe : fatal error LNK1120: 10 unresolved externals
1>Build log was saved at "file://d:\Program Files\Microsoft Visual Studio 9.0\projects\vs\vs\Debug\BuildLog.htm"
1>vs - 11 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我不知道是什么导致了这些问题,谁能详细解释这些消息?以及如何解决?

【问题讨论】:

  • 您通常不想用反引号将每一行括起来,而是使用“代码”按钮(一对花括号)将一个部分标记为代码(或者只需添加四个缩进空格 + a前后空行)。

标签: c++ c visual-studio-2008 opengl


【解决方案1】:

请参阅以下 NeHe 教程:

http://nehe.gamedev.net/tutorial/creating_an_opengl_window_%28win32%29/13001/

确保在任何 OpenGL 标头之前包含 windows.h,并且还包含 gl\GL.h。该教程使用 glaux 有点过时,但对于初次使用的用户来说仍然很可靠,后来的文章删除了 glaux 依赖项。

或者这个 Lighthouse 3D 课程:

http://www.lighthouse3d.com/tutorials/glut-tutorial/setup-basics/

【讨论】:

    猜你喜欢
    • 2012-06-06
    • 2013-04-27
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多