本文已同步发表在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. 玩转Windows服务系列汇总

    玩转Windows服务系列汇总 创建Windows服务 Debug.Release版本的注册和卸载及其原理 无COM接口Windows服务启动失败原因及解决方案 服务运行.停止流程浅析 Windows ...

  2. Redux初见

    说到redux可能我们都先知道了react,但我发现,关于react相关的学习资料很多,也有各种各样的种类,但是关于redux简单易懂的资料却比较少. 这里记录一下自己的学习理解,希望可以简洁易懂,入 ...

  3. 2、利用蓝牙定位及姿态识别实现一个智能篮球场套件(二)——CC2540/CC2541基于广播的RSSI获得

    CC2541一拖多例程中RSSI获得是通过一个事件回调函数实现的,前提是需要连接上蓝牙设备. 这个对于多点定位来说是不可行的,由于主机搜索蓝牙设备过程中也能获得当前蓝牙设备的RSSI等信息,因此可基于 ...

  4. 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

    Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...

  5. Entity Framework 6 Recipes 2nd Edition(10-10)译 - > 为TPH继承的插入、更新、删除操作映射到存储过程

    10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product ...

  6. (转载)JAVA动态编译--字节代码的操纵

    在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了.这种开发模式背后的过程是:开发人员编写的 ...

  7. Vue插件开发入门

    相对组件来说,Vue 的插件开发受到的关注要少一点.但是插件的功能是十分强大的,能够完成许多 Vue 框架本身不具备的功能. 大家一般习惯直接调用现成的插件,比如官方推荐的 vue-router.vu ...

  8. python学习 正则表达式

    一.re 模块中 1.re.match #从开始位置开始匹配,如果开头没有match()就返回none 语法:re.match(pattern, string, flags=0) pattern 匹配 ...

  9. C#异常处理经验(原则与方法)

         本文是异常处理经验性的文章,其实跟C#关系也不大.比较适合刚刚熟悉异常语法,而缺乏实战的读者.当然,经验老练的读者也可指出不足.给予意见.补充说明,一起完善文章,分享更多知识与经验.   1 ...

  10. img.width一直是0的问题--记录(二)

    var img=new Image(); img.src="图片路径"; 然后调用 img.width img.height 你会发现值是0: 这是因为页面在加载的时候图片是最后的 ...