Eclipse下配置openGL开发环境
2014-03-21 10:57
399 查看
本文转载自http://blog.csdn.net/sdlgxxy/article/details/6225267
一直想学习OpenGL,苦于配置开发环境,由于一直使用Eclipse,实在看不上VC++6.0,呵呵,所以下功夫配置一下OpenGl在Eclipse下的开发环境,一上午的时间终于把这个问题解决了,网上也没有详尽的文章,这里记录一下。出的问题实在太多,好几次都想放弃了,辛亏没有,呵呵。下面给出我的实现步骤:
1、下载安装Eclipse的C/C++版本(我软件库里有,直接解压就能用了)。下载地址为:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-win32.zip
2、下载openGL的相关文件,我已经将其分类打包上传到了资源区,下载地址为http://download.csdn.net/source/3063599 (这个是原博主的不需要积分)
http://download.csdn.net/detail/caihongshijie6/7075917(这个是我自己上传的,是需要下载积分的,强烈推荐下载原博主的。我自己上传仅仅是因为想方便我自己)
OpenGL库配置用到的文件分为下面三类:
■ 动态链接库文件(.dll)
glaux.dll、glu32.dll、glut32.dll、OPENGL32.DLL。
■ 头文件(.h)
GL.H、GLAUX.H、glos.h、GLU.H、glut.h。
■ 库文件(.lib)
GLAUX.LIB、Glu32.lib、glut32.lib、Opengl32.lib。
3、配置上述文件
1)将dll文件拷贝到windows/System32下面
2)因为我用的是MinGW,将.h文件放到${minGW}/include/GL文件加下,如果没有GL文件夹,新建一个。
3)库文件和头文件类似,也放在MinGW安装目录对应的lib下
4、好了,到了这里基本准备工作做完了,开始干活,打开Eclipse,新建一个C或C++项目,首先可以先写个HelloWorld验证Eclipse环境是否正常。一切OK之后,粘贴一份OpenGL的代码,编译运行试试,注意从网上拷贝下来的代码中没有前两行,是我加上的,第二行尤其重要,否则编译不通过。
本以为应该没啥问题吧,结果编译都通不过,出现如下错误:
查资料可以知道,由于没有正确的链接到库所致,解决方法如下:
在项目上,右键点击选择Properties,进如下图配置页面,按如下所示配置,注意不要改动,我是经过很多次尝试之后才配成功的,如果你的Libraries中配置的是glut而不是glut32,则会出现如下错误:无法定位程序输入点glPopAttrib于动态连接库OPENGL.DLL上
配置到这一步之后,重新编译项目,如果你按照我上面的步骤操作的话应该能编译成功了,恭喜你,迈出了成功的一步,可是接下来依然不是一帆风顺的。
5、项目编译成功之后,就可以运行下,看效果了,除非你人品超好,否则,我相信当你满怀期待的按下了Ctrl+F11后,Eclipse会毫无反应,我的第一反应以为是Eclipse一般输出是在Console中,对于openGL则不能显示,然后果断的打开了一个cmd,把Eclipse帮你编译好的HelloWorld.exe拖进去,运行之。当Windows连给我弹出了四次提示框,缺少某个dll文件(兵来将挡,依次下载相应的dll,拷贝到windows/system32目录下),又报了一个错误如图(哎,无助啊,又是一顿猛查资料)。
解决这个错误,很简单,参考http://www.codeguru.com/forum/showthread.php?t=357244,其实就是某个创建窗口的函数不能直接调用,需要作为回调函数来使用。修改后的代码如下:
好了,大功告成,再次编译运行项目,看到如下界面
一直想学习OpenGL,苦于配置开发环境,由于一直使用Eclipse,实在看不上VC++6.0,呵呵,所以下功夫配置一下OpenGl在Eclipse下的开发环境,一上午的时间终于把这个问题解决了,网上也没有详尽的文章,这里记录一下。出的问题实在太多,好几次都想放弃了,辛亏没有,呵呵。下面给出我的实现步骤:
1、下载安装Eclipse的C/C++版本(我软件库里有,直接解压就能用了)。下载地址为:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-win32.zip
2、下载openGL的相关文件,我已经将其分类打包上传到了资源区,下载地址为http://download.csdn.net/source/3063599 (这个是原博主的不需要积分)
http://download.csdn.net/detail/caihongshijie6/7075917(这个是我自己上传的,是需要下载积分的,强烈推荐下载原博主的。我自己上传仅仅是因为想方便我自己)
OpenGL库配置用到的文件分为下面三类:
■ 动态链接库文件(.dll)
glaux.dll、glu32.dll、glut32.dll、OPENGL32.DLL。
■ 头文件(.h)
GL.H、GLAUX.H、glos.h、GLU.H、glut.h。
■ 库文件(.lib)
GLAUX.LIB、Glu32.lib、glut32.lib、Opengl32.lib。
3、配置上述文件
1)将dll文件拷贝到windows/System32下面
2)因为我用的是MinGW,将.h文件放到${minGW}/include/GL文件加下,如果没有GL文件夹,新建一个。
3)库文件和头文件类似,也放在MinGW安装目录对应的lib下
4、好了,到了这里基本准备工作做完了,开始干活,打开Eclipse,新建一个C或C++项目,首先可以先写个HelloWorld验证Eclipse环境是否正常。一切OK之后,粘贴一份OpenGL的代码,编译运行试试,注意从网上拷贝下来的代码中没有前两行,是我加上的,第二行尤其重要,否则编译不通过。
#include <windows.h> #include <GL/gl.h> #include <GL/glut.h> #define window_width 640 #define window_height 480 // Main loop void main_loop_function() { // Z angle static float angle; // Clear color (screen) // And depth (used internally to block obstructed objects) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Load identity matrix glLoadIdentity(); // Multiply in translation matrix glTranslatef(0, 0, -10); // Multiply in rotation matrix glRotatef(angle, 0, 0, 1); // Render colored quad glBegin(GL_QUADS); glColor3ub(255, 000, 000); glVertex2f(-1, 1); glColor3ub(000, 255, 000); glVertex2f(1, 1); glColor3ub(000, 000, 255); glVertex2f(1, -1); glColor3ub(255, 255, 000); glVertex2f(-1, -1); glEnd(); // Swap buffers (color buffers, makes previous render visible) glutSwapBuffers(); // Increase angle to rotate angle += 0.25; } // Initialze OpenGL perspective matrix void GL_Setup(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glEnable(GL_DEPTH_TEST); gluPerspective(45, (float) width / height, .1, 100); glMatrixMode(GL_MODELVIEW); } // Initialize GLUT and start main loop int main(int argc, char** argv) { glutInit(&argc, argv); glutInitWindowSize(window_width, window_height); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutCreateWindow("GLUT Example!!!"); glutDisplayFunc(main_loop_function); GL_Setup(window_width, window_height); glutMainLoop(); }
本以为应该没啥问题吧,结果编译都通不过,出现如下错误:
F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:12: undefined reference to `glClear@4' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:14: undefined reference to `glLoadIdentity@0' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:16: undefined reference to `glTranslatef@12' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:18: undefined reference to `glRotatef@16' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:20: undefined reference to `glBegin@4' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:21: undefined reference to `glColor3ub@12' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:22: undefined reference to `glVertex2f@8' F:/workspace/cpp/HelloWorld/Debug/../src/HelloWorld.cpp:23: undefined reference to `glColor3ub@12'
查资料可以知道,由于没有正确的链接到库所致,解决方法如下:
在项目上,右键点击选择Properties,进如下图配置页面,按如下所示配置,注意不要改动,我是经过很多次尝试之后才配成功的,如果你的Libraries中配置的是glut而不是glut32,则会出现如下错误:无法定位程序输入点glPopAttrib于动态连接库OPENGL.DLL上
配置到这一步之后,重新编译项目,如果你按照我上面的步骤操作的话应该能编译成功了,恭喜你,迈出了成功的一步,可是接下来依然不是一帆风顺的。
5、项目编译成功之后,就可以运行下,看效果了,除非你人品超好,否则,我相信当你满怀期待的按下了Ctrl+F11后,Eclipse会毫无反应,我的第一反应以为是Eclipse一般输出是在Console中,对于openGL则不能显示,然后果断的打开了一个cmd,把Eclipse帮你编译好的HelloWorld.exe拖进去,运行之。当Windows连给我弹出了四次提示框,缺少某个dll文件(兵来将挡,依次下载相应的dll,拷贝到windows/system32目录下),又报了一个错误如图(哎,无助啊,又是一顿猛查资料)。
解决这个错误,很简单,参考http://www.codeguru.com/forum/showthread.php?t=357244,其实就是某个创建窗口的函数不能直接调用,需要作为回调函数来使用。修改后的代码如下:
#include <windows.h> #include <GL/gl.h> #include <GL/glut.h> #define window_width 640 #define window_height 480 // Main loop void main_loop_function() { // Z angle static float angle; // Clear color (screen) // And depth (used internally to block obstructed objects) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Load identity matrix glLoadIdentity(); // Multiply in translation matrix glTranslatef(0, 0, -10); // Multiply in rotation matrix glRotatef(angle, 0, 0, 1); // Render colored quad glBegin(GL_QUADS); glColor3ub(255, 000, 000); glVertex2f(-1, 1); glColor3ub(000, 255, 000); glVertex2f(1, 1); glColor3ub(000, 000, 255); glVertex2f(1, -1); glColor3ub(255, 255, 000); glVertex2f(-1, -1); glEnd(); // Swap buffers (color buffers, makes previous render visible) glutSwapBuffers(); // Increase angle to rotate angle += 0.25; } // Initialze OpenGL perspective matrix void GL_Setup(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glEnable(GL_DEPTH_TEST); gluPerspective(45, (float) width / height, .1, 100); glMatrixMode(GL_MODELVIEW); } // Initialize GLUT and start main loop int main(int argc, char** argv) { glutInit(&argc, argv); glutInitWindowSize(window_width, window_height); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutCreateWindow("GLUT Example!!!"); glutDisplayFunc(main_loop_function); GL_Setup(window_width, window_height); glutMainLoop(); }
好了,大功告成,再次编译运行项目,看到如下界面
相关文章推荐
- Eclipse下配置openGL开发环境
- Linux平台下用eclipse配置OpenGL开发环境
- 配置Eclipse3.1开发JSP的环境(Tomcat版)
- Eclipse Eclipseme wtk配置JAVA ME开发环境
- 在eclipse中安装PHPEclipse插件,配置php开发环境
- Eclipse配置Ruby开发环境
- Eclipse3.3+EclipseMe1.7.9+WTK25配置J2ME开发环境
- 在windows下用eclipse + pydev插件来配置python的开发环境
- Windows下基于Eclipse的Hadoop开发环境完全配置(三) .
- 安装Qt+MinGW+Eclipse for c_c++开发环境配置总结
- Eclipse 3.0 上配置JSP开发环境
- 用javaee版本eclipse开发移动互联项目(环境配置)
- 基于Eclipse的Hadoop开发环境配置方法
- 如何配置Java EE Eclipse+Tomcat开发环境
- Mac配置Python开发环境(Eclipse +Pydev+Python)
- Win7(64)+eclipse(64)+tomcat7(64)+jdk7(64)开发环境配置
- Android开发环境搭建:SDK在线离线安装+在Eclipse中配置ADT+第一个Android程序运行
- codeblocks 及VS2008开发OpenGL程序时,环境配置
- Eclipse开发PHP环境配置
- Android 开发环境配置图文教程(jdk+eclipse+android sdk)