昨天一直想用eclipse+MINGW跑OPENGL,弄了很久沒弄上,今天早上終於弄好了,步驟如下:
1:下載eclipse for C++ IDE 在www.eclipse.org上,具體的不說了
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><br />#include <GL/gl.h><br />#include <GL/glut.h><br />void display(void)<br />{<br /> glClear (GL_COLOR_BUFFER_BIT);/* clear all pixels */<br /> glColor3f (1.0, 1.0, 1.0);<br /> glBegin(GL_POLYGON);/* draw white polygon with corners at(0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)*/<br /> glVertex3f (0.25, 0.25, 0.0);<br /> glVertex3f (0.75, 0.25, 0.0);<br /> glVertex3f (0.75, 0.75, 0.0);<br /> glVertex3f (0.25, 0.75, 0.0);<br /> glEnd();<br /> glFlush ();/* start processing buffered OpenGL routines */<br />}<br />void init (void)<br />{<br /> glClearColor (0.0, 0.0, 0.0, 0.0);/* select clearing color */<br /> glMatrixMode(GL_PROJECTION);<br /> glLoadIdentity();<br /> glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);/* initialize viewing values */<br />}<br />int main(int argc, char** argv)<br />{<br /> glutInit(&argc, argv);<br /> glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);/*Declare initial display mode(single buffer and RGBA).*/<br /> glutInitWindowSize (250, 250); /*Declare initial window size.*/<br /> glutInitWindowPosition (100, 100);/*Declare initial window position.*/<br /> glutCreateWindow ("hello");/*Open window with "hello"in its title bar.*/<br /> init ();/*Call initialization routines.*/<br /> glutDisplayFunc(display); /*Register callback function to display graphics.*/<br /> glutMainLoop();/*Enter main loop and process events.*/<br /> return 0; /* ANSI C requires main to return int. */<br />}<br />
在eclipse的該工程下,還需要設定靜態連結庫,不然一直會顯示無法找到靜態庫,或者編譯的時候出現undefinded reference錯誤
具體做法是:propreties->C/C++Build ->setting->MinGW C++ Linker ->libraries 在Libraries(-l)添加 opengl32,glu32, glut32
好像這個順序是不能打亂的
弄完這些就能跑opengl