依赖环境
- 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子项目。