首页 > 其他分享 >OpenGL with GLFW GLAD and CMAKE

OpenGL with GLFW GLAD and CMAKE

时间:2023-09-21 19:34:37浏览次数:44  
标签:CMAKE OpenGL app GLFW GLAD https glad

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/

标签:CMAKE,OpenGL,app,GLFW,GLAD,https,glad
From: https://www.cnblogs.com/asmurmur/p/17720760.html

相关文章

  • CommonTK框架之Qt5配置cmake脚本
    源码获取CommonTKCMake配置打开下图的CMake脚本文件添加下面的代码SET(CTK_QT_VERSION5)SET(CMAKE_PREFIX_PATH${CMAKE_PREFIX_PATH}"C:/major/development/tools/qt/5.14/install/5.14./msvc2015_64")添加的脚本代码位置如下图C:/major/development/tools/q......
  • Cmake减少输出可执行文件的大小
    1、使用Release模式set(CMAKE_C_FLAGS_RELEASE"${CMAKE_C_FLAGS_RELEASE}-s")set(CMAKE_BUILD_TYPE"RELEASE") 2、使用strip命令删除调试信息等set(CMAKE_STRIP"strip")add_custom_command(TARGET${PROJECT_NAME}POST_BUILDCOMMAND${C......
  • CMake/001-Hello CMake
    开始学习使用CMake建立工程(本文以实践为目的,注重实践)1.先安装CMake 2.创建一个最简单的CMake工程a.准备工作(找一个空目录,建立如下文件)           b.hello.cpp文件内容如下#include<stdlib.h>#include<string.h>v......
  • 简单介绍cmakelist的使用
    Windows平台1在文件夹中创建一个CPP文件;自己随便写一个主函数就行 写一个简单的c++main函数;2创建一个CMakeLists.txt文件,写上下列内容;可以使用notepad,会对一些字段自动补齐cmake_minimum_required(VERSION3.5FATAL_ERROR)Project(HELLOW-01LANGUAGESCXX)add_e......
  • OpenCASCADE GLFW IMGUI
    OpenCASCADEGLFWIMGUI如果从事过C++Windows客户端开发,大家对MFC、Qt、DuiLib、WxWidgets等各种DirectUI应该有了解,本篇给大家介绍一个超级轻量级的C++开源跨平台图形界面框架ImGUI.ImGUI主要用于游戏行业,所有的控件都需要手绘实现,当然性能也是满满的,毕竟是直接用dx/opengl来......
  • ros2迁移c++之package.xml、CMakeLists.txt及编译
    1、package.xml<package><!--1.根标签--> <name><!--2.包名--> <version><!--3.版本号--> <description><!--4.包描述--> <maintainer><!--5.维护者--> <......
  • CMAKE相对路径编译和python的ctypes引用
    CMAKE相对路径编译和python的ctypes引用cmake编译库使用相对路径cmake编译使用相对路径生成动态库,进而满足其他代码的调用,如python的ctypes由于ctypes能调用c,而不能调用c++,所以,使用externc来处理,使ctypes能够调用。externc在需要编译动态库cpp代码中,使用C的方式处理函数......
  • cmake设置目标文件的绝对路径
    通常Linux问题不大,Windows下老是会出现Debug和Release目录,导致不一致这样设置即可set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG${CMAKE_CURRENT_SOURCE_DIR}/../bin)set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE${CMAKE_CURRENT_SOURCE_DIR}/../bin)上面的语句设置目标路......
  • cmake基础示例:如何编译【跨平台】的动态库和应用程序
    示例代码首先看一下测试代码的全貌:mylib:只有一个源文件,编译输出一个动态库;myapp:也只有一个源文件,链接mylib动态库,编译输出一个可执行程序; mylib在mylib目录中,一共有3个文件:mylib.h,mylib.c以及CMakeLists.txt,内容分别如下://mylib/mylib.hw文件#ifndef_M......
  • CMake 备忘录
    CMAKE配置protobufQ:protobuf_generate_cpp是CMake的内置函数么?A:不是的。protobuf_generate_cpp不是CMake的内置函数,而是由FindProtobuf.cmake模块提供的一个函数,用于从.proto文件生成C++代码。FindProtobuf.cmake是Protobuf库的CMake模块。使用这个函......