随便一搜都是复制粘贴原版VS教程或者直接下载二进制文件的。
本文对标LearnOpenGL或Vulkan-Tutorial教程,提供一种使用CLion编译glfw并配置环境的方法。
请参照原版教程获取相关库的下载链接。如果不想编译源码,可以直接下载预编译的glfw文件并跳过第一节。对于预编译的二进制文件,CLion需要解压lib-mingw-w64
和include
两个文件夹。
编译教程
为什么要自己编译库?
从源代码编译库可以保证生成的库完全适合你的操作系统和CPU的,而预编译的二进制文件则并非总是提供(有时候,即便提供了预编译的二进制文件,也可能不适用于您的系统)。
- 将glfw源码解压,使用CLion不需要下载CMake,直接打开工程并选择glfw的根目录。
成功后CLion会在glfw目录下创建cmake-build-debug
和.idea
两个文件夹。 - 默认的编译配置中包含演示样例,所以我们手动设置仅编译库文件。依次在设置中找到Setting - Build - CMake。选择右侧的Debug展开Cache varibles变量选项。
- 将
Build shared libraries
勾选为ON,(默认为OFF)。 - 将
Build the GLFW example programs
、Build the GLFW test programs
勾选为OFF。 - apply应用。
如果你熟悉CMakeList,也可以手动修改文件内变量。
- 单击Build Project,成功的话会在 ./cmake-build-debug/src 文件夹下找到所需的文件
glfw3.dll
libglfw3.a
libglfw3dll.a
,新建一个外部lib文件夹放置它们。
环境配置
glad比较简单,按照原版教程下载解压即可。
OpenGL配置方法
- 为了方便管理,建议遵守如下目录结构。
- include :将glfw和glad的include文件夹解压至此,内部应该有
glad
GLFW
KHR
三个文件夹。 - lib:放入第一节编译出的三个文件。
- src:将glad中的
glad.c
解压至此。
- 对于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参照原版教程下载任意版本即可。
- Vulkan和OpenGL几乎一致,但遵循官方文档的示例,头文件和外部库并不合并放置。
- include :Vulkan、glm、glfw各自的include文件夹已经放置在自己的目录内。
- lib:Vulkan有自己的Lib目录,第一节编译出的三个文件可以在glfw内新建一个lib文件夹放置。
- 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目录下才能运行程序。