设置OpenGL - 它不起作用

时间:2013-06-06 13:32:47

标签: c++ opengl visual-studio-2012 glut freeglut

我刚买了一台装有Windows 8 64bit的新笔记本电脑,而我正在使用Visual Studio 2012。 就像我在以前的PC上安装3d party lib一样,我做了通常的程序:

  1. 下载freeglut,glew,glfw,glut,sdl
  2. 将标题复制到“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ include”
  3. 将lib复制到“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ lib”
  4. 将dll复制到“C:\ Windows \ SysWOW64”
  5. 然后我下载了我在另一台PC上开发的项目(在Windows 8 32bit下开发,如果它有任何重要性)并且它将编译。编译器向我提出了以下链接错误:

    Error 1 error LNK2001: unresolved external symbol __imp__glDrawArrays@12  - about 50 of these 
    
    Error 63 error LNK2019: unresolved external symbol __imp__glClear@4 - again about 50 of these
    

    该项目在我的旧PC上完美运行。

    我确实尝试制作一个简单的新项目:http://pastebin.com/GfEieL6f

    链接以下库(属性 - >链接器 - >输入 - >附加依赖项)

    opengl32.lib
    glut32.lib
    glu32.lib
    

    再次它不会编译,同样的链接错误:

    Error 1 error LNK2019: unresolved external symbol __imp__glBegin@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 2 error LNK2019: unresolved external symbol __imp__glClear@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 3 error LNK2019: unresolved external symbol __imp__glClearColor@16 referenced in function _main P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 4 error LNK2019: unresolved external symbol __imp__glColor3f@12 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 5 error LNK2019: unresolved external symbol __imp__glEnd@0 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 6 error LNK2019: unresolved external symbol __imp__glFlush@0 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 7 error LNK2019: unresolved external symbol __imp__glLoadIdentity@0 referenced in function _main P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 8 error LNK2019: unresolved external symbol __imp__glMatrixMode@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 9 error LNK2019: unresolved external symbol __imp__glOrtho@48 referenced in function _main P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 10 error LNK2019: unresolved external symbol __imp__glRotatef@16 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    
    Error 11 error LNK2019: unresolved external symbol __imp__glVertex3iv@4 referenced in function "void __cdecl drawcube(void)" (?drawcube@@YAXXZ) P:\OpenGL_Setup\OpenGL_Setup\opengl_setup.obj
    

    我不知道我是否遗漏了什么,你能给我一些想法吗?

    PP:我设法修复了简单程序并运行它,但我无法运行我的旧项目。也许这是因为平台变化的问题?我该如何解决?

1 个答案:

答案 0 :(得分:2)

  1. 不要将文件添加到编译器lib目录中。而是将另一个库搜索路径添加到项目中。

  2. 您可能下载了与VC ++ 2012不兼容的库文件和项目构建设置。在本机代码中,您不能混合x86,x64等。静态库需要匹配您的项目位数,而不是您的操作系统。 Microsoft还更改/扩展了库文件格式以及库使用的运行时库组件,因此您确实应该获得为您的VC ++版本设计的库文件。