1. GLFW简介
- 针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口
- 跨平台的窗体生成API系统
- 与OpenGL便捷链接
- 方便的鼠标键盘消息回调函数
2. 下载
https://www.glfw.org/download.html
3. 编译
官方编译说明 https://www.glfw.org/docs/latest/compile_guide.html
- 一直向下找到cmake配置部分:
- 使用vscode 打开下载的源码目录,在项目根目录下打开终端配置cmake
注: 感觉vs工程麻烦,所以这里使用cmake生成Makefile工程,直接使用命令编译
MinGW Makefiles 报错的可参考https://blog.csdn.net/qq_51355375/article/details/140561782
cmake -S . -B build -G "MinGW Makefiles" //会自动生成build目录
4. 编译源码, 进入build目录, 直接make编译, 等待100%即可
make
编译完成后会在build/src下生成libglfw3.a
4. 测试
4.1 测试工程构建
- 新建测试目录,分别创建src, include, lib 目录
- 将glfw 编译后的libglfw3.a 放到lib目录
- 将glfw 源码目录下的include 目录下的头文件拷贝到include/GLFW下
- 根目录创建CMakeLists.txt, src下创建main.c
工程目录如下:
4.2 创建CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(glfw_example VERSION 1.0 LANGUAGES C)
# 设置 C 标准
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED True)
# 设置包含 GLFW 头文件的目录
include_directories(${PROJECT_SOURCE_DIR}/include)
# 假设库文件在 lib 目录下,并且库文件名为 libglfw3.a
link_directories(${PROJECT_SOURCE_DIR}/lib)
# 设置可执行文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
#搜素源文件
file(GLOB SRC_LIST "src/*.c")
# 添加可执行文件
add_executable(app ${SRC_LIST})
# 链接 GLFW 库
target_link_libraries(app glfw3)
4.3 main.c
#include <GLFW/glfw3.h>
int main(void) {
GLFWwindow* window;
if (!glfwInit())
return -1;
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window) {
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
// 渲染循环内容(这里为空)
}
glfwTerminate();
return 0;
}
4.4 编译
cmake -G "MinGW Makefiles"
make
编译成功后会在bin目录下生成app.exe
4.5 运行测试
进入bin目录, 执行app
窗口运行,执行成功
测试工程:https://download.csdn.net/download/qq_51355375/89558736
glfw编译工程:https://download.csdn.net/download/qq_51355375/89558734