1. 程式人生 > >OpenGL(32位)開發環境配置: win7 64位系統 + vs2010 + freeglut + glew

OpenGL(32位)開發環境配置: win7 64位系統 + vs2010 + freeglut + glew

      之前一直用紅寶書原始碼("oglpg-8th-edition.zip")帶的庫來編譯OpenGL程式,有空就配了一下win7下的開發環境,隨手記下,僅供參考。

       本人win7 自帶了"GL.h"檔案,在“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl”,系統已有基本的OpenGL配置,剩下所要做的就是新增“freeglut” 和 “glew”。

    1、下載

           1)、freeglut

:http://www.transmissionzero.co.uk/software/freeglut-devel/

             

            2)、glewhttp://glew.sourceforge.net/

              

             下了“freeglut-MSVC-3.0.0-2.mp.zip” 、“glew-2.1.0-win32.zip”。

             

          這兩部分內容,本人打包放到了:https://download.csdn.net/download/trevor_k/10776402

      2、配置

            2.1、freeglut

               1)、將解壓後“include”中“GL”下內容,拷貝到“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl”。

               

               2)、將“lib”下“freeglut.lib”,拷貝至“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib”。

                  

               3)、將“bin”下“freeglut.dll”,拷貝至“C:\Windows\SysWOW64”。

                   

                 注意:lib和bin資料夾下都有“x64”,我們配的是32位,用不到。本人用其配了64位,沒成功,沒找到原因。

           2.2、glew

                 1)、 將解壓後“include”中“GL”下內容,拷貝到“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl”。

                    

                 2)、將“./ lib/ Release/ Win32”下內容,拷貝至“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib”。

                       

                  3)、將“./ bin/ Release/ Win32”下“glew32.dll”,拷貝至“C:\Windows\SysWOW64”。

                      

            3、測試 

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

#pragma comment (lib, "glew32.lib")

void init() 
{
	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
}
void display() 
{
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(0.0f, 1.0f, 0.0f);
	glRectf(-0.6f, -0.6f, 0.6f, 0.6f);
	glFlush();
}

int main(int argc, char* argv[])
{
	glutInit(&argc, argv);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(400, 300);
	glutInitDisplayMode(GLUT_RGBA);
	glutCreateWindow("opengl");

	glewInit();

	init();
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}

        注意:

              1)、#include <GL/glew.h> 一定要放到#include <GL/glut.h>之前,否則會報錯“fatal error C1189: #error :  gl.h included before glew.h”。

         這是因為在glew.h中進行了如下定義:

#if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__X_GL_H)
#error gl.h included before glew.h

              2)、此處只“#pragma comment (lib, "glew32.lib")”, 而沒有新增"freeglut.lib",這是因為在“glut.h”中包含了“freeglut_std.h”,在後者中進行了新增。

       

      最終執行結果:

               

   4、參考內容

     https://blog.csdn.net/chaojiwudixiaofeixia/article/details/49403679

     https://blog.csdn.net/outtt/article/details/50771057