一、OpenGL 相关库的下载与安装

GLFW

GLFW 是配合 OpenGL 使用的轻量级工具程序库,缩写自 Graphics Library Framework(图形库框架)。GLFW 的主要功能是创建并管理窗口和 OpenGL 上下文,同时还提供了处理手柄、键盘、鼠标输入的功能。

就是用来创建窗口界面。

// 使用 Homebrew 安装:
brew install glfw3

// 头文件路径
/usr/local/Cellar/glfw/3.3.4/include/GLFW
// 库路径
/usr/local/Cellar/glfw/3.3.4/lib

GLEW

OpenGL Extension Wrangler Library (GLEW), a cross-platform C/C++ library that helps in querying and loading OpenGL extensions.

实现对底层OpenGL接口封装。

// 使用 Homebrew 安装:
brew install glew

// 头文件路径
/usr/local/Cellar/glew/2.2.0_1/include/GL
// 库路径
/usr/local/Cellar/glew/2.2.0_1/lib

Glad

作用与 GLEW 类似。

下载地址:https://glad.dav1d.de/

Language: C/C++
Specification: OpenGL
API: Version 3.3
Profile: Core

选中 Generate a loader 并点击 GENERATE 按钮,下载 glad.zip 文件,解压后复制到 /usr/local/Cellar/glad/

OpenGL Mathematics

OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specifications.

// 使用 Homebrew 安装:
brew install glm

// 头文件路径
/usr/local/Cellar/glm/0.9.9.8/include/glm

https://glm.g-truc.net/0.9.8/index.html

stb_image.h

stb_image.h是Sean Barrett的一个非常流行的单头文件图像加载库,它能够加载大部分流行的文件格式,并且能够很简单得整合到你的工程之中。

https://github.com/nothings/stb

各个库的关系图

704bf32a4e8b2de61b721ec1bb508c5c

图片来源:https://www.cnblogs.com/chencarl/p/10722839.html

二、Xcode 配置

1、Header Search Paths

4645a65ecc0206c32fc565258a049341

$(inherited)
/usr/local/include
/usr/local/Cellar/glfw/3.3.4/include/GLFW
/usr/local/Cellar/glew/2.2.0_1/include/GL
/usr/local/Cellar/glad/include

2、Library Search Paths

ba48dcea12f504d3ab6d4f50b5728ac7

/usr/local/Cellar/glew/2.2.0_1/lib
/usr/local/Cellar/glfw/3.3.4/lib

3、User Header Search Paths

/usr/local/include

0b5aa3c9236723a08f304817e1ad46c2

三、编译错误处理

1、找不到符号

f8d750d7eb51794d09869bbffcb4b3bb

需要选择 macOS。

5b69fc432760f5a8e7ab1885af0f2b93

2、找不到镜像

32aadc53b09964257319065fa28c7993

选中 Disable Library Validation

c4ce12a19d46cbc3bc561c6a30c76224

3、stb_image.h 找不到符号

e2b3b6cd310f0f6585a78df8eac5b3be

在代码最前面添加:

#define STB_IMAGE_IMPLEMENTATION

四、Demo

https://github.com/oudushu/LearnOpenGL