我刚买了一台装有Windows 8 64bit的新笔记本电脑,而我正在使用Visual Studio 2012。 就像我在以前的PC上安装3d party lib一样,我做了通常的程序:
然后我下载了我在另一台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:我设法修复了简单程序并运行它,但我无法运行我的旧项目。也许这是因为平台变化的问题?我该如何解决?答案 0 :(得分:2)
不要将文件添加到编译器lib
目录中。而是将另一个库搜索路径添加到项目中。
您可能下载了与VC ++ 2012不兼容的库文件和项目构建设置。在本机代码中,您不能混合x86,x64等。静态库需要匹配您的项目位数,而不是您的操作系统。 Microsoft还更改/扩展了库文件格式以及库使用的运行时库组件,因此您确实应该获得为您的VC ++版本设计的库文件。