码迷,mamicode.com
首页 > 系统相关 > 详细

OpenGL学习进程(2)OpenGL开发环境的搭建

时间:2016-06-27 09:04:06      阅读:497      评论:0      收藏:0      [点我收藏+]

标签:

    通过本节,我们来学习一下在Win10 64、VS1013环境下搭建OpenGL的开发环境。

 

    (1)选择一个编译环境:

    现在在windows中OpenGL的主流编译工具有Visual Studio,Broland C++ Builder,Dev C++等,我们选择Visual Studio2013作为开发环境。

 

    (2)用到的资源:

    我们使用了GLEW,freeglut以及GLTools这三个库。下面是它们的简介:

    1)GLEW:

    The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.

      GLEW是一个跨平台的OpenGL的扩展库,支持多个操作系统。

    2)freeglut:

  FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library。(FreeGLUT是一个免费软件/开源替代OpenGL实用工具包(GLUT)库。)

    3)GLTools:

  主要是为了获得这个项目编译后的gltools.lib文件。

 

    (3)开发环境的配置:

    1)下载文件:

文件名 我的文件 官网下载
1.GLEW http://files.cnblogs.com/files/MenAngel/glew-1.7.0-win64.zip  http://glew.sourceforge.net/
2.freeglut需编译包(不用不行) http://files.cnblogs.com/files/MenAngel/freeglut-3.0.0.tar.gz  http://freeglut.sourceforge.net/
3.GLTools需编译包(不用也行) http://files.cnblogs.com/files/MenAngel/GLTools-master.zip  https://codeload.github.com/HazimGazov/GLTools/zip/master
4.freeglut(只有freeglut.lib和.dll) http://files.cnblogs.com/files/MenAngel/freeglut_2.8.0.zip  http://download.csdn.net/detail/wocaowogannimei/8082851
5.GL和GLTools.lib包 http://files.cnblogs.com/files/MenAngel/GL%E5%92%8Cgltools.dll.lib.7z
 自定义包:GL可直接用,而且还包含GLTools.lib

 

      

   

    

   

 

    2)解压后将得到的文件分别进行配置:

    处理glew:

  include文件夹下是头文件,将位于include文件夹下的GL文件夹复制到"Visual Studio 2013安装目录\VC\include" 下;

  lib文件夹下的文件复制到"Visual Studio 2013安装目录\VC\lib";

  bin文件夹下的文件复制到C:\Windows\SysWOW64;(32位的系统放在System32)

    处理freeglut:

      没有提供编译好的包,需要使用CMake自行编译:(上网随便下载一份CMake软件,CMake是用于控制软件使用简单的平台和编译器编译过程独立配置文件。)

      1.打开cmake,将输入文件"freeglut"的路径和编译输出文件的路径配置好:

    技术分享

      2.点击Configure进行配置,弹出下面的页面,选择输出文件的类型是Visual Studio 2013 win64位:

    技术分享

      3.点击Finish,等待cmake处理几秒之后弹出对话框:

    技术分享

    4.这里注意用蓝色标注的两行:

  第一行是生成的freeglut库文件所在的位置,其默认是在C(系统盘),尽量额外定义一个文件输出位置,这个位置将输出我们需要用到的文件;

  第二行是生成Static Lib,勾了这个选项在Install的时候会出现一个错误,由于不生成这个Static Lib也没有多大影响,这里就取消了这个选项。

      配置好CMake选项后,Generate生成的visual studio2013的项目如下:

技术分享

      5.打开freeglut.sln:

    技术分享

      6.在INSTALL项目上右击,点击生成,将重新编译这13个项目,在VS下生成就是编译的意思,此时在我们的CMAKE_INSTALL_PREFIX配置的路径下输出的文件是:

    技术分享

    7.temp输出文件夹下有三个文件夹include、bin、lib,和GLEW类似,将其内容复制到相应的位置:

    技术分享 

     技术分享

     技术分享

    提醒:在这里配置时出现严重错误:

      错误1.我们需要的是freeglut.dll和freeglut.lib,而这里编译之后给的是freeglutd.dll和freeglutd.lib。原因是用cmake工具时出现错误。后来我又重新下载的freeglut.lib和freeglut.dll文件。(".dll"文件放到系统目录,".lib"文件放到VS的目录下)   

      错误2.可以观察到加入的文件夹名为Windows/System32,实际上win32位的才选择将.dll扩展文件放到这里,由于我的电脑是64位,所以应该放在Windows/sysWOW64文件夹下。

  freeglut配置完成。

     处理GLTools

      对于GLTools,主要是获得GLTools.lib文件, 然后将GLTools.lib复制到Visual Studio 12.0\VC\lib下。

  我们可以通过编译GLTools项目来获得GLTools.lib,也可以直接用别人编译项目获得的GLTools:

  1.下载地址:http://download.csdn.net/download/u010255642/6896993

      2.编译方法:

     参见文档:http://www.cnblogs.com/wangguchangqing/p/4425745.html

     参见文档:http://www.ithao123.cn/content-967031.html

    拷贝的结果:

  技术分享

    至此,OpenGL开发环境配置完成。

 

    (4)一个OpenGL的测试项目:

    1)在VS2013项目中新建一个Visual C++类型的win32控制台程序,空项目:

技术分享

    2)创建空项目之后,而且选择不要预编译头部,在OpenGL测试项目上右击打开属性页:

技术分享

    3).在链接器的输入页面的附加依赖项中添加gltools.lib,glew32s.lib,freeglutd.lib;在忽略特定默认库中添加LIBCMT和MSVCRT。

    提醒:

      错误3:由于前面错了,所以这里也错了。这里将freeglutd.lib改为freeglut.lib。

技术分享

  技术分享

    4)在源文件上选择右击,新建一个C++文件,命名为text1.c。(默认是.cpp文件)

技术分享

    5)拷贝下面的测试代码到text1.c中:

 1 //#include"stdafx.h"           错误原因:VS2013/2012默认就包含了“stdafx.h”吧,所以不必再写一次。
 2 #include <GL/glut.h> 
 3 void init(void)
 4 {
 5     glClearColor(0.0, 0.0, 0.0, 0.0);//设置背景颜色为黑色
 6     glShadeModel(GL_SMOOTH);//设置为光滑明暗模式
 7 }
 8 void myDisplay(void)
 9 {
10     glClear(GL_COLOR_BUFFER_BIT);// 将缓存清除为预先的设置值,即黑色
11     //glTranslatef(0.8, 0.0, 0.0);//平移函数,暂时可以不用
12     glBegin(GL_TRIANGLES);//开始画三角形
13     glColor3f(1.0, 0.0, 0.0);//设置第一个顶点为红色
14     glVertex2f(-1.0, -1.0);//设置第一个顶点的坐标
15     glColor3f(0.0, 1.0, 0.0);//设置第二个顶点为绿色
16     glVertex2f(0.0, -1.0);//设置第二个顶点的坐标
17     glColor3f(0.0, 0.0, 1.0);//设置第三个顶点为蓝色
18     glVertex2f(-0.5, 1.0);//设置第三个顶点的坐标
19     glEnd();//三角形结束
20     glFlush();//强制OpenGL函数在有限时间内运行
21 }
22 void myReshape(GLsizei w, GLsizei h)
23 {
24     glViewport(0, 0, w, h);//设置视口
25     glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTION
26     glLoadIdentity();//将当前矩阵置换为单位阵
27     if (w <= h)
28         gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w);//定义二维正视投影矩阵
29     else
30         gluOrtho2D(-1.0, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5);
31     glMatrixMode(GL_MODELVIEW);//指明当前矩阵为GL_MODELVIEW
32 }
33 int main(int argc, char ** argv)
34 {
35     /*初始化*/
36     glutInit(&argc, argv);
37     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓冲、RGB模式
38     glutInitWindowSize(400, 400);
39     glutInitWindowPosition(200, 200);
40     glutCreateWindow("三角形");//窗口标题
41     init();
42     /*绘制与显示*/
43     glutReshapeFunc(myReshape);//窗口大小发生改变时采取的行为
44     glutDisplayFunc(myDisplay);//显示绘制图形
45     glutMainLoop();//循环
46     return(0);
47 }

      点击本地windows调试器运行的结果为:

技术分享

 加上这句话会出现上图所示错误:
技术分享

技术分享

  错误原因:VS2013/2012默认就包含了“stdafx.h”吧,所以不必再写一次。

OpenGL学习进程(2)OpenGL开发环境的搭建

标签:

原文地址:http://www.cnblogs.com/MenAngel/p/5605364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!