初探eclipse写OpenGL
我使用的是eclipse+MinGW,除了这两个软件我并没有安装其他东西。一个Hello World程序很容易就实现了,困难出在了编写OpenGL的Win32窗口框架的时候。
第一个问题是找不到glut.h头文件,工程窗口的include路径下面明明有这个文件,但是代码里面使用#include<glut.h>就是会报错。后来又莫名其妙的可以找到了。在网上查了一下,挺难找的。在一篇题目为“Eclipse下OpenGL开发环境配置”的文章中找到了答案,就是从http://web.cs.wpi.edu/~gogo/courses/mingw/winglut.zip下载这个包,复制里边的"winlib\libglut32win.a" 文件到"C:\mingw\lib",然后eclipse
这篇文章也解决了后面遇到的另外一个问题,win32框架中的ChoosePixelFormat(), SetPixelFormat(),SwapBuffers(),这三个函数连接不到。但是在VC6.0中就能够正常编译连接。问题就出在GDI32.lib这个库。VC的SDK中包含了这个库,而MinGW中没有。所以我从VC中把这个库拷到MngGW中的lib文件夹下,这个三个函数的问题就解决了。
还有就是,你在eclipse中把库路径和具体的库文件都要添加库进去,有glut32win,glut32, glu32, opengl32, winmm, gdi32
在一开始,还没有在渲染函数中写入初始化和绘制代码时,我先写到了wglCreateContext(hDC),wglMakeCurrent(hDC, hRC),wglDeleteContext(hRC)这几个函数,我就先把wlgext.h这个头文件加进去,也是没有用,后来把glut.h添加进去就好了,而与wlgext.h似乎没有什么关系。不过后来在整个代码框架全部写好之后再用eclipse测试时即使不包含任何的头文件wglCreateContext(hDC),wglMakeCurrent(hDC, hRC),wglDeleteContext(hRC)这三个函数也不会报错,看来在eclipse中问题还是出在上面那些静态链接库。
不过后来再用VC进行测试时发现这三个函数只与glut.h这个头文件有关,而我在VC中任何具体的lib库都没有添加,只添加了库的路径。