本文参考:https://learnopengl-cn.github.io/

一 下载GLFW(https://www.glfw.org/download.html)  和 GLAD(https://glad.dav1d.de/)

  ①GLFW,这里保证生成的库是兼容你的操作系统和CPU的,选择源代码(Source package),自己去编译。

  ②GLAD,将语言设置为C/C++, gl选择3.3以上版本,模式设置为Core,选中Generate a loader,点击生成,下载zip文件后解压。

二 CMake生成工程文件(CMake下载地址:https://cmake.org/download/)

  ①启动CMake,Browse Source输入GLFW的目录, Browse Build输入编译输出的目录

  ②点击Configure,CMake读取Browse Source目录的设置和源代码,并且弹出窗口,选择Visio Studio 15 2017, Use Deafault native compiler。

  点击Finish。

  ③再次点击Configure保存配置。

  ④点击Generate,Browse Build目录会生成兼容操作系统和CPU的VS2017工程文件。

三 VS编译工程文件,生成glfw3.lib。

  在CMake生成目录即Browse Build目录里找到GLFW.sln文件,用VS2017打开。直接点击生成解决方案,在src/Debug目录就会生成glfw3.lib库文件。

四 头文件和库文件放置

  这儿我在F盘创建VSIncludeLibFiles文件夹,创建子文件夹Include和Libs,把头文件和库文件都放在这,方便管理。

  ①把下载的glfw中include路径下的GLFW文件夹复制到F:\VSIncludeLibFiles\Include路径。

     把下载的glad中include路径下的二个文件夹glad,KHR全复制到F:\VSIncludeLibFiles\Include路径。

  ②把VS编译生成的glfw3.lib库文件放到F:\VSIncludeLibFiles\Libs目录。 

五 链接头文件和库文件

  ①创建C++空项目OpenGL

  

  ②vs资源管理器中右击OpenGL项目->属性->配置属性->VC++目录,包含目录

  

  点击编辑,输入include目录F:\VSIncludeLibFiles\Include,点击确定:

  ③vs资源管理器中右击OpenGL项目->属性->配置属性->VC++目录,库目录

  点击编辑,输入F:\VSIncludeLibFiles\Libs库目录,点击确定。

  ④上一步只是指定库目录,vs不会自动依赖这些库文件,必须我们去指定。

  点击链接器 -> 输入 -> 附加依赖项,点击右侧扩展箭头,输入依赖 opengl32.lib   glfw3.lib,每个库之间要加回车,点击确定。  

    注:

  opengl32.lib是系统自带的。

六 把glad/src目录下的glad.c文件拖入vs项目中。

至此,开发环境就搭建好了,下节课测试这个开发环境。

Windows10+VS2017 用GLFW+GLAD 搭建OpenGL开发环境的更多相关文章

  1. mac 下 用 glfw3 搭建opengl开发环境

    mac 下 用 glfw3 搭建opengl开发环境 下载编译 glfw3 Build Setting 里面, Library Search Paths -> 设置好编译 glfw 库的路径 H ...

  2. 利用CodeBlocks结合freeglut快速搭建OpenGL开发环境

    利用CodeBlocks结合freeglut快速搭建OpenGL开发环境 2018-12-19 10:15:48 再次超越梦想 阅读数 180更多 分类专栏: 我的开发日记   版权声明:本文为博主原 ...

  3. Windows10系统下使用Docker搭建ClickHouse开发环境

    前提 随着现在业务开展,几个业务系统的数据量开始急剧膨胀.之前使用了关系型数据库MySQL进行了一次数据仓库的建模,发现了数据量上来后,大量的JOIN操作在提高了云MySQL的配置后依然有点吃不消,加 ...

  4. Xcode下搭建OpenGL开发环境

    #include <GLUT/GLUT.h> void display() { glClear(GL_ENABLE_BIT); glBegin(GL_POLYGON); glVertex2 ...

  5. [Modern OpenGL系列(一)]十步搞定OpenGL开发环境

    本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/51292143 OpenGL官网:https://www.opengl.or ...

  6. 【游戏开发】基于VS2017的OpenGL开发环境搭建

    一.简介 最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,“工欲善其事,必先利其器”.想学习图形 ...

  7. Windows10搭建PHP7开发环境

    原文:Windows10搭建PHP7开发环境 3年前写了一篇<Windows下搭建PHP开发环境>之后就再也没有碰过PHP了,最近新发布了PHP7然后回去看了一下之前写的文章,发现很多配置 ...

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

        通过本节,我们来学习一下在Win10 64.VS1013环境下搭建OpenGL的开发环境.     (1)选择一个编译环境: 现在在windows中OpenGL的主流编译工具有Visual S ...

  9. Ubuntu下OpenGL开发环境的搭建

    由于上了计算机图形学的课,老师叫我们安装OpenGL开发环境,晚上安装了一两个小时,终于搞定了. 1.      建立基本编译环境 sudo apt-get install build-essenti ...

随机推荐

  1. MVC3学习:实现简单的相册管理和图片管理

    相册管理说白了就是文件夹管理,因此要用到命名空间using System.IO; 一.先来做相册管理,添加相册我就不做了,就是添加文件夹,这里主要做一下相册的显示.相册在页面上显示,需要一张图片,可以 ...

  2. android开发学习——day5

    活动跳转部分代码显式intent @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(saved ...

  3. MySQL笔记(1)---MySQL体系结构和存储引擎

    1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询. 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合.MySQL中数据库文件可以是frm.MYD.MYI.ibd结尾的 ...

  4. Vue2.0-token权限处理

    token一种身份的验证,在大多数网站中,登录的时候都会携带token,去访问其他页面,token就想当于一种令牌.可以判断用户是否登录状态.本次页面是通过Element-ui搭建的登录界面 当用户登 ...

  5. js便签笔记(9)——解读jquery源码时记录的一些知识点

    近来一直利用业余时间在看jquery2.1.1源码,大约看了两千行了.平时看的时候,做了一些笔记,贴出来分享. 1. Array.prototype.slice.call 可以将伪数组转化为真正的数组 ...

  6. Linux-(watch,at,crontab)

    watch命令 1.命令格式: watch  [参数]  [命令] 2.命令功能: 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令. watch可以帮你监测一个命令的运行结 ...

  7. Java队列——Disruptor 的使用

    .什么是 Disruptor  从功能上来看,Disruptor 是实现了“队列”的功能,而且是一个有界队列.那么它的应用场景自然就是“生产者-消费者”模型的应用场合了. 可以拿 JDK 的 Bloc ...

  8. [Python学习笔记-005] 理解yield

    网络上介绍yield的文章很多,但大多讲得过于复杂或者追求全面以至于反而不好理解.本文用一个极简的例子给出参考资料[1]中的讲解,因为个人觉得其讲解最为通俗易懂,读者只需要对Python的列表有所了解 ...

  9. Eclipse 下Spring cloud项目集成开发插件Spring Tool Suite (STS) 安装

    安装eclipse插件 Help->Eclipse Marketplace-> Search中查找"Spring Tool Suite (STS) for Eclipse&quo ...

  10. 装饰器(Decorator)模式

    1  装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能.通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式.显然,直接修改对应 ...