使用CLion编译glfw并配置OPenGL或Vulkan环境

随便一搜都是复制粘贴原版VS教程或者直接下载二进制文件的。

本文对标LearnOpenGL或Vulkan-Tutorial教程,提供一种使用CLion编译glfw并配置环境的方法。

请参照原版教程获取相关库的下载链接。如果不想编译源码,可以直接下载预编译的glfw文件并跳过第一节。对于预编译的二进制文件,CLion需要解压lib-mingw-w64include两个文件夹。

编译教程

为什么要自己编译库?

从源代码编译库可以保证生成的库完全适合你的操作系统和CPU的,而预编译的二进制文件则并非总是提供(有时候,即便提供了预编译的二进制文件,也可能不适用于您的系统)。

  1. 将glfw源码解压,使用CLion需要下载CMake,直接打开工程并选择glfw的根目录。在这里插入图片描述
    成功后CLion会在glfw目录下创建cmake-build-debug.idea两个文件夹。
  2. 默认的编译配置中包含演示样例,所以我们手动设置仅编译库文件。依次在设置中找到Setting - Build - CMake。选择右侧的Debug展开Cache varibles变量选项。
    在这里插入图片描述
  • Build shared libraries勾选为ON,(默认为OFF)。
  • Build the GLFW example programsBuild the GLFW test programs 勾选为OFF。
  • apply应用。

如果你熟悉CMakeList,也可以手动修改文件内变量。

  1. 单击Build Project,成功的话会在 ./cmake-build-debug/src 文件夹下找到所需的文件glfw3.dll libglfw3.a libglfw3dll.a ,新建一个外部lib文件夹放置它们。

环境配置

glad比较简单,按照原版教程下载解压即可。

OpenGL配置方法

  1. 为了方便管理,建议遵守如下目录结构。
  • include :将glfw和glad的include文件夹解压至此,内部应该有glad GLFW KHR三个文件夹。
  • lib:放入第一节编译出的三个文件。
  • src:将glad中的glad.c解压至此。
  1. 对于CLion来说,需要手动配置外部库和链接关系。新建一个工程,打开其中的CMakeLists.txt文件,修改代码如下:
cmake_minimum_required(VERSION 3.25)
project(OpenGLDemo) #工程名

set(CMAKE_CXX_STANDARD 17)
set(GL_Dir D:/OpenGL) #目录名称

add_executable(OpenGLDemo ${GL_Dir}/src/glad.c main.cpp)

INCLUDE_DIRECTORIES(${GL_Dir}/include) # 头文件和外部库的位置
link_directories(${GL_Dir}/lib)
target_link_libraries(OpenGLDemo ${GL_Dir}/lib/glfw3.dll)

我将上述三个文件夹放置在了D:/OpenGL中,你需要按照自己的设置检查对应变量,并且在IDE内应用改动。成功后,CLion 的文件目录会新显示外部引用如下。
在这里插入图片描述
3. 运行一下OpenGL第三节提供的测试代码,显示出带有颜色的窗体。
在这里插入图片描述

可以开始你的OpenGL学习之路了~

Vulkan配置方法

glm参照原版教程下载任意版本即可。

  1. Vulkan和OpenGL几乎一致,但遵循官方文档的示例,头文件和外部库并不合并放置。
  • include :Vulkan、glm、glfw各自的include文件夹已经放置在自己的目录内。
  • lib:Vulkan有自己的Lib目录,第一节编译出的三个文件可以在glfw内新建一个lib文件夹放置。
  1. CLion需要手动配置外部库和链接关系。新建一个工程,打开其中的CMakeLists.txt文件,修改代码如下:
cmake_minimum_required(VERSION 3.25)
project(VulkanDemo)

set(CMAKE_CXX_STANDARD 17)
set(VK_Dir D:/VulkanSDK)

add_executable(VulkanDemo main.cpp)

include_directories(${VK_Dir}/1.3.250.1/Include ${VK_Dir}/glm-0.9.9.8/glm ${VK_Dir}/glfw-3.3.8/include)
find_library(${VK_Dir}/1.3.250.1/Lib ${VK_Dir}/glfw-3.3.8/lib)
target_link_libraries(VulkanDemo ${VK_Dir}/1.3.250.1/Lib/vulkan-1.lib ${VK_Dir}/glfw-3.3.8/lib/glfw3.dll)

与OpenGL基本一样。不同的是,这里的每个库文件都是分别在自己的目录内,你需要为他们分别添加变量。我将上述三个文件夹放置在了D:/Vulkan中,你需要按照自己的设置检查对应变量,并且在IDE内应用改动。成功后,CLion 的文件目录会新显示外部引用如下。
在这里插入图片描述

3.运行一下Vulkan提供的测试代码,显示出带有白色的窗体,控制台显示扩展数不为0。
在这里插入图片描述

其他的配置方法:

  • 可以将外部库直接扔进CLion的本地库文件夹里。这样任何工程都可以直接访问而不需要单独配置。但不利于管理,而且重新安装IDE或编译器可能会导致这些文件丢失。
  • 可以将外部库放在工程目录下,配置CMakeLists时使用相对目录。
  • 可能需要将glfw3.dll放置到生成的exe目录下才能运行程序。
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值