win7(64位)+VS2010(x64 app)+opengl 无法解析的外部符号

最近在调试一个一个程序(VS2010+opengl),刚开始时用win32下开发的,程序运行正常,但是当在VS2010中改变【生成->配置管理器->活动解决方案平台】如下图所示

win7(64位)+VS2010(x64 app)+opengl 无法解析的外部符号_第1张图片

改变运行平台在X64下时,其运行出错了,错误如下所示:

1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glEnable,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::Init(void)" (?Init@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glClearDepth,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::Init(void)" (?Init@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_wglMakeCurrent,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::Init(void)" (?Init@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_wglCreateContext,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::Init(void)" (?Init@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_wglGetCurrentDC,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glFinish,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glPopMatrix,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glEnd,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glVertex3f,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glColor3f,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glBegin,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glPointSize,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glPushMatrix,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glClear,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glClearColor,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::DrawScene(void)" (?DrawScene@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_wglDeleteContext,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::OnDestroy(void)" (?OnDestroy@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_wglGetCurrentContext,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::OnDestroy(void)" (?OnDestroy@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXXZ) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glOrtho,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::OnSize(unsigned int,int,int)" (?OnSize@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXIHH@Z) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glLoadIdentity,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::OnSize(unsigned int,int,int)" (?OnSize@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXIHH@Z) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glMatrixMode,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::OnSize(unsigned int,int,int)" (?OnSize@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXIHH@Z) 中被引用
1>Test3DConstructionUsingMatlabDllEx0828View.obj : error LNK2019: 无法解析的外部符号 __imp_glViewport,该符号在函数 "public: void __cdecl CTest3DConstructionUsingMatlabDllEx0828View::OnSize(unsigned int,int,int)" (?OnSize@CTest3DConstructionUsingMatlabDllEx0828View@@QEAAXIHH@Z) 中被引用
1>D:\project\VcProject\Test3DConstructionUsingMatlabDllEx0828\x64\Debug\Test3DConstructionUsingMatlabDllEx0828.exe : fatal error LNK1120: 21 个无法解析的外部命令

----->改正上面错误的方法其实很简单

Visual C++ 2010 中已经提供了对 OpenGL 库的支持,这里主要需要配置的是 GLUT。GLUT 是一个与窗口系统无关的工具包,当我们在写 OpenGL 程序时,可以通过 GLUT 实现简单的窗口的创建等操作,免去了学习特定 OS 下 GUI库的过程。
glut下载地址:

http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

将下载的文件解压后,将把里面的文件移动到以下文件夹

glut.h —> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
glut.dll,glut32.dll —>C:\Windows\SysWOW64 (64位操作系统)
—> C:\Windows\System32 (32位操作系统)

glut.lib,glut32.lib —> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib

以上,配置成功!

还有一点就是【项目->属性->链接】如下图所示

win7(64位)+VS2010(x64 app)+opengl 无法解析的外部符号_第2张图片

在【连接器->常规->附加库目录】在里面选入选择x64的库目录,如我自己的机器上是:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64

因为VS默认是win32的库目录,所以要手动加入x64库目录,加入之后就可以了 



你可能感兴趣的:(C/C++,opengl,C/C++VS2010,VS2010)