计算机图形学实验一:配置Mac OS X的OpenGL开发环境

分类: 学习笔记

依赖环境

  • Mac OS X Yosemite (10.10.5)
  • CMake
  • GLFW3

后续需要环境:

  • GLEW
  • GLM

助教介绍的GLUT库很久没有维护了,在Mac OS X 10.9中已经强烈警告GLUT已被废弃。因此,推荐使用GLFW3窗口库,或者使用freeglut这个基于GLUT的维护中的开源替代品。GLEW用于使用OpenGL的新特性,因此可以暂时不必配置;GLM则为OpenGL数学库,后续实验使用它进行矩阵变换。

安装

使用Homebrew

brew install glfw3
brew install glew
brew install glm

包含文件和库文件应该默认安装到/usr/local/include和/usr/local/lib,如果没有则自行链接/usr/local/Cellar/中的包含文件和库文件到/usr/local中,或在之后配置CMakeLists时设置指定目录。

CMake配置

我使用CLion集成开发环境(很好用的IDE,学生账号是免费的,可以一直用,强烈推荐),CLion基于CMake实现编译的控制。同时,为了方便配置避免冗余,我在一个项目中配置多个工程的编译选项:通过add_executable实现。

cmake_minimum_required(VERSION 3.3)
project(opengl)

find_package(OpenGL REQUIRED)

link_libraries(glfw3 GLEW ${OPENGL_LIBRARY})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ")

set(SOURCE_FILES_C1 c1/colorChanging.cpp)
add_executable(c1 ${SOURCE_FILES_C1})

set(SOURCE_FILES_C2 c2/polygonRotateAndScale.cpp)
add_executable(c2 ${SOURCE_FILES_C2})

set(SOURCE_FILES C...)
add_executable(c... ${SOURCE_FILES_C...})

...

我的clang默认的Include Directory和Library Directory包含了/usr/local,不过好像默认是不包含的,我不记得我曾经如何设置。如果不包含本地目录,则在CMakeLists中添加library_directories和include_directories即可。

library_directories("/usr/local/lib")
include_directories("/usr/local/include")

测试

为了检测环境是否配置成功,可以贴一段代码编译执行一下测试。可以参考我的GitHub计算机图形学课程项目中的c1子项目。

GitHub: xuhongxu96/Computer-Graphics-Course