本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/51292143


OpenGL官网:https://www.opengl.org
开发常用的SDK库:https://www.opengl.org/sdk/libs/

搭建环境前的准备

在搭建OpenGL开发环境前先下载好下面的三个压缩文件:

  1. GLEW(OpenGL Extension Wrangler Library):详细介绍。压缩包下载链接:Binaries Windows 32-bit and 64-bit
  2. GLM(OpenGL Mathematics):详细介绍。压缩包下载链接:glm-0.9.7.4.zip
  3. SDL(Simple DirectMedia Layer):详细介绍。压缩包下载链接:SDL2-devel-2.0.4-VC.zip (Visual C++ 32/64-bit)

上面的三个库文件我已经上传到我的CSDN资源中,有需要的可自行下载。

创建VS项目

  1. 打开VS2015,文件->新建->项目(或者使用快捷键Ctrl+Shift+N)。然后选择Visual C++ -> Win32项目。如下图所示:
  2. 确定按钮后,接着点下一步,接下来操作如图所示:
  3. 在项目源文件夹下添加main.cpp,然后编译(或者运行)一下工程。main.cpp源码如下:#include <iostream> int main(){ std::cout << "Hello World!" << std::endl; return 0; }
  4. 将上面下载好的三个文件解压。然后在项目文件夹(OpenGLProject\OpenGLProject)下新建两个文件夹分别取名为includelib。如图:
  5. 拷贝GLEW库文件到项目中。将解压的glew-1.13.0文件夹下的include文件中的GL文件拷贝到新建的include文件夹下。将glew-1.13.0\lib\Release\Win32文件夹下的glew32.libglew32s.lib文件拷贝到新建的lib文件夹下。将glew-1.13.0\bin\Release\Win32文件夹下的glew32.dll拷贝到最外层的DebugOpenGLProject\Debug)文件夹下。
  6. 拷贝GLM库文件到项目中。将解压的glm文件夹下的glm文件夹整体拷贝到新建的include文件夹下。
  7. 拷贝SDL库文件到项目中。将解压的SDL2-2.0.4文件夹下的include文件夹整体拷贝到新建的include文件夹下,并重新命名为SDL2。将SDL2-2.0.4\lib\x86文件夹下的SDL2.libSDL2main.libSDL2test.lib都拷贝到新建的lib文件夹下,同时将SDL2.dll文件拷贝到最外层的DebugOpenGLProject\Debug)文件夹下。
  8. 设置include路径。在VS的解决方案资源管理器中选中OpenGLProject项目,然后右键->属性。其他设置如图:
  9. 设置lib路径。设置步骤如图所示:
  10. 设置附加依赖项。具体设置如图:

至此,OpenGL的开发环境已经搭建完成。下一篇文章讲解如何创建一个OpenGL的窗口。


以上文章内容整理自YouTube视频教程Intro To Modern OpenGL Tutorial。想要FQ看原视频教程的请自备防和谐软件。


声明:本文欢迎转载和分享,但是请尊重作者的劳动成果,转载分享时请注明出处:http://www.cnblogs.com/davidsheh/p/5452127.html 。同时,码字实在不易,如果你觉得笔者分享的笔记对你有点用处,请顺手点击下方的推荐,谢谢!

[Modern OpenGL系列(一)]十步搞定OpenGL开发环境的更多相关文章

  1. 五步搞定Android开发环境部署

    引言   在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入 Android浪潮的朋友们,为了确保大家能顺利完成开发 ...

  2. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

      在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭 ...

  3. 三步搞定 opencv 初始环境设定

    一.设定bin的初始位置:比如我的电脑 D:\安装程序\opencv\build\x86\vc10\bin      H:\生产力工具\opencv\build\x86\vc10\bin D:\安装程 ...

  4. Spring Boot入门系列(十五)Spring Boot 开发环境热部署

    在实际的项目开发过中,当我们修改了某个java类文件时,需要手动重新编译.然后重新启动程序的,整个过程比较麻烦,特别是项目启动慢的时候,更是影响开发效率.其实Spring Boot的项目碰到这种情况, ...

  5. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

  6. APP设计师拿到APP产品原型开始,七步搞定APP设计(转)

    任何一款成功的APP都需要以坚实的产品概念作为基础,因为概念决定了产品最终完成的潜力. 一般情况下,交到app设计师手里的都是移动app产品原型图.当然这个是在移动产品经理反复斟酌,并且与大家开会讨论 ...

  7. iOS开发三步搞定百度推送

    iOS开发三步搞定百度推送   百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...

  8. SmaterWeatherApi---签名加密和数据訪问--简单粗暴一步搞定

    -----------------------------------------------------更新-2014-07-09---------------------------------- ...

  9. 十分钟搞定pandas内容

    目录 十分钟搞定pandas 一.创建对象 二.查看数据 三.选择器 十二.导入和保存数据 参考:http://pandas.pydata.org/pandas-docs/stable/whatsne ...

随机推荐

  1. 自制文件上传JS控件,支持IE、chrome、firefox etc.

    (function() { if (window.FileUpload) { return; } window.FileUpload = function (id, url) { this.id = ...

  2. ABP框架 - 应用服务

    文档目录 本节内容: IApplicationService 接口 ApplicationService 类 CrudAppService 和 AsyncCrudAppService 类 简单的CRU ...

  3. [译]ZOOKEEPER RECIPES-Queues

    队列 分布式队列是一种常见的数据结构.为了在ZooKepeer中实现分布式队列,第一步是要使用一个znode代表队列本身.分布式客户端通过create()方法将内容放入一个名叫"queue- ...

  4. CSS样式表分类

    1.内联样式表 <p  style="font-size:11px;">内联样式表</p> 2.内嵌样式表 写在head标签里 <style  typ ...

  5. MVVM下listbox默认显示最后一行

    原文地址:http://stackoverflow.com/questions/16866309/listbox-scroll-into-view-with-mvvm public class Scr ...

  6. 前端学HTTP之网站架构演化

    前面的话 本文将详细介绍网站架构的演化过程 初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来.小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的 ...

  7. Php基础知识测试题

    一:选择题 1. LAMP具体结构不包含下面哪种(A      ) A:Windows系统               如果是这个就是WMP B:Apache服务器 C:MySQL数据库 D:PHP语 ...

  8. Android 中关于Fragment嵌套Fragment的问题

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5802146.html 问题描述: 在项目中Activity A中嵌套Fragment B,Fragment ...

  9. c#编程基础之ref、out参数

    引例: 先看这个源码,函数传递后由于传递的是副本所以真正的值并没有改变. 源码如下: using System; using System.Collections.Generic; using Sys ...

  10. Apworks框架实战(六):使用基于Entity Framework的仓储基础结构

    在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...