MinGW配置OpenGL(Windows10)



參考鏈接:
https://www.transmissionzero.co.uk/computing/using-glut-with-mingw/ (力薦!)
https://www.cnblogs.com/joyeecheung/p/4310487.html
http://www.mamicode.com/info-detail-495096.html

開工前

MinGW的安裝參考另一篇博客:https://www.cnblogs.com/chap-xw/p/13944947.html
未進行過有關Opengl的任何配置,現檢查相關內容
MinGW的安裝目錄下,include目錄下有GL文件夾,里面有gl.h、glext.h、glu.h三個頭文件

lib目錄下有libglu32.alibopengl.alibglaux.alibgdi32.a


System32文件夾里有glu32.dll,opengl32.dll


SystWOW64文件夾里有glu32..dll,opengl32.dll

下載GLUT

按照如下步驟在OpenGL官網尋找GLUT下載鏈接


點擊GLUT

驚喜!不再維護了,找不到了下載鏈接了
但是還是能下載···
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

比我還古老啊···
還有其他的下載鏈接:
https://user.xmission.com/~nate/glut.html
兩種方式下載的內容不太一樣···
在這就用最原始的版本了

操作

首先將glut.h復制到MinGW/include/GL目錄下

接下來要注意,這里的glut32.lib庫文件雖然是以lib為后綴,是MSVC標准的,而MinGW中都是以.a為后綴的庫文件
但是可以直接使用
將glut32.lib復制到MinGW/lib目錄下

(剛開始還以為要把.lib文件轉換為.a文件,需要MinGW的bin目錄下的reimp.exe,pexports.exe,dlltool.exe等程序,而我只有一個dlltool.exe,可能是因為當初在線安裝MinGW時只選了最基本的選項,所以需要從其他地方下載另外兩個程序,這里把鏈接給出來,說不定以后會用到
https://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/pexports-0.47/
https://sourceforge.net/projects/mingw/files/MinGW/Extension/mingw-utils/)

要運行的opengl文件:

#include <stdlib.h>
#include <GL/glut.h>

void init();
void display();

int main(int argc, char* argv[])
{
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
        glutInitWindowPosition(0, 0);
        glutInitWindowSize(300, 300);

        glutCreateWindow("OpenGL 3D View");

        init();
        glutDisplayFunc(display);

        glutMainLoop();
        return 0;
}

void init()
{
        glClearColor(0.0, 0.0, 0.0, 0.0);
        glMatrixMode(GL_PROJECTION);
        glOrtho(-5, 5, -5, 5, 5, 15);
        glMatrixMode(GL_MODELVIEW);
        gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
}

void display()
{
        glClear(GL_COLOR_BUFFER_BIT);

        glColor3f(1.0, 0, 0);
        glutWireTeapot(3);

        glFlush();
}

命令行輸入以下命令

gcc opengl.c  -lglut32 -lopengl32 -lglu32

-lglut32 -lopengl32 -lglu32缺一不可
報錯

在源文件中第一行加上

#include <windows.h>

再次輸入命令,編譯成功

生成一個可執行文件

雙擊運行

報錯
原因是還沒復制glut32.dll文件
復制到C:\Windows\SysWOW64目錄下

再次運行

附錄

附上一些GLUT的常用鏈接···
https://www.opengl.org/resources/libraries/glut/spec3/spec3.html
https://www.opengl.org/resources/libraries/glut/faq/
https://www.opengl.org/resources/libraries/glut/glut-3.spec.pdf

glut32.dll是為微軟封裝的,官方的
glut.dll是sgi封裝的
順便說一句,SGI也有在windows環境下的opengl驅動,里面的庫文件名改了一下,去掉了32:opengl.lib和glu.lib。

glut.h包含了gl.h和glu.h的引用,所以不需要再include后兩個,但是必須有這三個頭文件在GL文件夾中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM