0. 前言

首先,无论是在youtube还是网站上,许多OpenGL的环境配置都是在VS studio里配置的,个人比较喜欢使用VS code,以及Cmake.

下文给出了一个Cmake版本关于 GLFW GLAD 的编译环境。

另外,感谢分享知识的人。

具体的代码已放入 github 中, 代码地址 https://github.com/Alex-gift-hit/OpenGL-with-GLFW-GLAD-and-CMAKE

1. GLFW

  1. 下载源代码放入 3rdparty 中。

  2. 在项目主 CMakeLists.txt 加入下面的代码,这些代码的来源是GLFW的官方文档 Building applications.

cmake_minimum_required(VERSION 3.14)
project(my_app) find_package(OpenGL REQUIRED) set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) add_subdirectory(3rdparty/glfw-3.3.8) add_executable(my_app main.cpp) target_link_libraries(my_app OpenGL::GL)
target_link_libraries(my_app glfw)

3 GLAD

GLAD是一个 OpenGL Loading Library。 与之相同的是GLEW。详情请见 OpenGL Loading Library

具体怎么生成这里不便再说,有兴趣可以去看 learnopengl.

需要注意的是,我们的GLAD是用的 GL3.3, 所以别在代码里写2的东西。

  1. 下载include, src3rdparty/glad/
  2. 在项目主 CMakeLists.txt 加入下面的代码,这些代码的来源是GLAD的Issue How to use directly from CMAKE
add_subdirectory(3rdparty/glad)
target_link_libraries(my_app glad)
  1. 3rdparty/glad/里添加如下camke代码
cmake_minimum_required(VERSION 3.0)
project(Glad) add_library(glad include/glad/glad.h src/glad.c)
target_include_directories(glad PUBLIC include/)

3 main.cpp

实际是 LearnOpenGl.com 的 Hello Window.

4. Cmake Compile

cmake -S . -B build
cmake --build build

X. Refference

  1. https://github.com/Dav1dde/glad/issues/186
  2. https://learnopengl.com/Getting-started/Hello-Window
  3. https://glad.dav1d.de/
  4. https://www.glfw.org/

OpenGL with GLFW GLAD and CMAKE的更多相关文章

  1. OpenGL开发学习指南二(glfw+glad)

    版权声明:本文为博主原创文章,未经博主允许不得转载.blog.liujunliang.com.cn https://blog.csdn.net/qq_33747722/article/details/ ...

  2. GLFW+GLAD OpenGL Mac开发环境搭建

    前言 OpenGL 是什么?The Industry Standard for High Performance Graphics 这是官方解释.说白了他就是一套标准接口.对,是接口,并没有实现具体的 ...

  3. [OpenGL]配置GLFW

    注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html.本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上 ...

  4. Mac平台Clion配置GLFW+GLAD的项目

    前期的准备工作详见LearnOpenGL CN 看这篇教程的前提是假设你已经编译好了GLFW文件夹以及下载好了GLAD,不会的话可以看我的另一篇 文章的前部分: 配置 Clion新建一个项目,CMak ...

  5. [OpenGL]配置GLFW(超详细)

    注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html.本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上 ...

  6. 获取显示屏的个数和分辨率 --- 通过使用OpenGL的GLFW库

    获取显示屏的个数和分辨率 - 通过使用OpenGL的GLFW库 程序 #include <iostream> // GLFW #include <GLFW/glfw3.h> i ...

  7. OpenGL 使用GLFW创建全屏窗口

    OpenGL 使用GLFW创建全屏窗口 GLFW库里面的glfwCreateWindow()函数是用来创建窗口的函数. 这样函数的原型是: GLFWwindow* glfwCreateWindow(i ...

  8. Windows10+VS2017 用GLFW+GLAD 搭建OpenGL开发环境

    本文参考:https://learnopengl-cn.github.io/ 一 下载GLFW(https://www.glfw.org/download.html)  和 GLAD(https:// ...

  9. Xcode环境下OpenGL C++ GLFW开发环境搭建

    操作系统版本:MacOS Mavericks 10.9.2 Xcode版本:5.0.1 OpenGL版本:4.10 GLFW版本:3.0.4 一.GLFW编译 1.下载并安装cmake(当前最新版本为 ...

  10. OpenGL ES之GLFW窗口搭建

    概述 本章节主要总结如何使用GLFW来创建Opengl窗口.主要包括如下内容: OpenGl窗口创建介绍 GLFW Window版编译介绍 GLFW简单工程源码介绍 OpenGL窗口创建介绍 能用于O ...

随机推荐

  1. 网络文件系统nfs服务端配置客户端权限时的demo例子

    参考: https://www.cnblogs.com/devilmaycry812839668/p/15127755.html 由上面的参考资料我们可以知道在nfs服务端进行配置时对于客户端的权限设 ...

  2. Cython.Compiler.Errors.CompileError: Cython.Compiler.Errors.CompileError: /home/devil/anaconda3/envs/chainerRL/lib/python3.6/site-packages/mujoco_py/cymj.pyx

    ubuntu系统下,python3.6,anaconda下配置mujoco210环境时遇到报错: /home/devil/anaconda3/envs/chainerRL/lib/python3.6/ ...

  3. oracle执行报错 ORA-01722: 无效数字

    1.背景 执行Oracle存储过程时报错:ORA-01722: 无效数字 2.错误描述 1.对于两个类型不匹配,一个数字类型,一个非数字类型的值进行赋值操作;2.两个类型不匹配的值进行比较操作,比如一 ...

  4. vue之父组件与子组件

    1.背景 2.简单使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  5. .Net Aspire次体验

    上次用上了在微软MVP的带领下用上了Aspire,在开发阶段隐藏了细节,什么都不用做,点个调试按钮就跑起来了,可是部署时出现了难题, 因为发布时只能选择Azure环境,为此注册了Azure,开了科网. ...

  6. WPF如何给window加阴影效果

    <Style x:Key="WindowStyle1" TargetType="{x:Type Window}"> <Setter Prope ...

  7. ARM架构及ARM指令集、Thumb指令集你了解多少?

    https://www.sohu.com/a/339622340_100281310 1991 年ARM 公司成立于英国剑桥,在成立后的那几年,ARM业绩平平,工程师们也人心惶惶,害怕随时都会失业.在 ...

  8. JavaScript设计模式样例十七 —— 迭代器模式

    迭代器模式(Itrator Pattern) 定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示.目的:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示.场景:$ ...

  9. Python3将web服务和脚本做成开机自启

    1.将bwService文件放到 /etc/init.d/下 bwService文件(类型是文件) #!/bin/bash # # This shell script takes care of st ...

  10. 异常处理,内置方法(__new__,__init__,__del__析构方法,单例模式,item系列)

    __new__ 创建一个对象 class A: def __init__(self): print('in init') def __new__(cls): print('in new') self= ...