昨天一直想用eclipse+MINGW跑OPENGL,弄了很久没弄上,今天早上终于弄好了,步骤如下:
1:下载eclipse for C++ IDE 在上,具体的不说了
2: 下载Mingw 我是在sourceforge上搜的
3:安装MingW 一步步安装就行,装完之后在path中添加环境变量。例如:C:/MinGW/bin;我的是放在了最前面。
4:在网上下一个GLUT库。然后用mingw-utils把里面的 glut32.lib编译成libglut32.a文件。具体办法是在cmd命令行用mingw-utils里的 remip
5: 把用remip.exe生成的libglut32.a文件放到MinGW/lib目录下。
6:把GLUT库中的glut.h放到MinGW/include/GL文件下。因为MinGW是自带一些GL库的.
7:把GLUT库中的glut32.dll放到C:/WINDOWS/System32目录下。
在网上找了测试代码:
#include <stdlib.h> #include <GL/gl.h> #include <GL/glut.h> void display(void) { glClear (GL_COLOR_BUFFER_BIT);/* clear all pixels */ glColor3f (1.0, 1.0, 1.0); glBegin(GL_POLYGON);/* draw white polygon with corners at(0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)*/ glVertex3f (0.25, 0.25, 0.0); glVertex3f (0.75, 0.25, 0.0); glVertex3f (0.75, 0.75, 0.0); glVertex3f (0.25, 0.75, 0.0); glEnd(); glFlush ();/* start processing buffered OpenGL routines */ } void init (void) { glClearColor (0.0, 0.0, 0.0, 0.0);/* select clearing color */ glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);/* initialize viewing values */ } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);/*Declare initial display mode(single buffer and RGBA).*/ glutInitWindowSize (250, 250); /*Declare initial window size.*/ glutInitWindowPosition (100, 100);/*Declare initial window position.*/ glutCreateWindow ("hello");/*Open window with "hello"in its title bar.*/ init ();/*Call initialization routines.*/ glutDisplayFunc(display); /*Register callback function to display graphics.*/ glutMainLoop();/*Enter main loop and process events.*/ return 0; /* ANSI C requires main to return int. */ }在eclipse的该工程下,还需要设置静态链接库,不然一直会显示无法找到静态库,或者编译的时候出现undefinded reference错误
具体做法是:propreties->C/C++Build ->setting->MinGW C++ Linker ->libraries 在Libraries(-l)添加 opengl32,glu32, glut32
好像这个顺序是不能打乱的
弄完这些就能跑OpenGL。