本文已同步发表在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. ucos实时操作系统学习笔记——任务间通信(互斥锁)

    想讲一下ucos任务间通信中的mutex,感觉其设计挺巧妙,同sem一样使用的是event机制实现的,代码不每一行都分析,因为讲的没邵贝贝老师清楚,主要讲一下mutex的内核是如何实现的.可以理解互斥 ...

  2. Linux C++ 开发简介

    主要介绍将Windows程序迁移到Linux系统相关知识 简介 Windows程序迁移到Linux系统可能需要修改很多代码, 既需要了解Linux平台的开发知识, 也需要了解Windows平台代码如何 ...

  3. ASP.NET MVC Model验证(二)

    ASP.NET MVC Model验证(二) 前言 上篇内容演示了一个简单的Model验证示例,然后在文中提及到Model验证在MVC框架中默认所处的位置在哪?本篇就是来解决这个问题的,并且会描述一下 ...

  4. ERROR ITMS-90167: "No .app bundles found in the package"错误

    ERROR ITMS-90167: "No .app bundles found in the package" 出现如上错误请查检以下2个方向: 1.macOS Sierra 1 ...

  5. node.js学习总结(一)

    1.1.1 安装 Node.js 有三种方式安装 Node.js:一是通过安装包安装,二是通过源码编译安装,三是在 Linux 下可以通过 yum|apt-get 安装,在 Mac 下可以通过 Hom ...

  6. HTML5_06之拖放API、Worker线程、Storage存储

    1.拖放API中源对象与目标对象事件间的数据传递: ①创建全局变量--污染全局对象:  var 全局变量=null;  src.ondragstart=function(){   全局变量=数据值;  ...

  7. 用VB脚本批到导入字段到PowerDesigner

    在PowerDesigner使用脚本批量导入excel中记录的表结构信息,由于需要通过powerdesigner逆向工程创建一些sybase IQ的表,由于是接口数据,只有excel表,手动导入太耗时 ...

  8. 在SQL Server中为什么不建议使用Not In子查询

        在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下       下面 ...

  9. undefined

    概述 undefined有多重角色,通常情况下,我们所说的undefined都指的是全局对象的一个属性"undefined". 语法 undefined 描述 在JavaScrip ...

  10. jQuery UI与jQuery easyUI的冲突解决办法

    jQuery UI与jQuery easyUI都是基于jQuery开发的.难免里面会有些方法名冲突! 因此对jQuery.easyui其中的两个方法名:resizable 和 draggable进行替 ...