分类: C/C++
2016-10-12 18:04:59
出处:http://www.cnblogs.com/wangguchangqing/p/4425745.html
做三维重建需要用到OpenGL,开始看《OpenGL超级宝典》,新手第一步配置环境就折腾了一天,记录下环境的配置过程。
《超级宝典》中的例子使用了GLEW,freeglut以及GLTools这三个库。
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
GLEW是一个跨平台的OpenGL的扩展库,支持多个操作系统。下载地址: 提供了已编译好的文件
解压后将得到的文件分别进行复制:
include文件夹下是头文件,将位于include文件夹下的GL文件夹复制到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include 下
lib文件夹下Release\Win32的文件复制到:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
bin文件夹下Release\Win32的文件复制到:C:\Windows\System32
GLEW就配置完成了
FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library。
最新的稳定版是3.0,其下载地址: ,没有提供编译好的包,需要使用CMake自行编译。
CMake的配置
注意红圈的两个位置,第一个是生成的freeglut库文件所在的位置,其默认是在C(系统盘),由于访问C盘需要管理员权限,这里没有使用默认值。
第二个是生成Static Lib,勾了这个选项在Install的时候会出现一个错误, 如:
CMake Error at cmake_install.cmake:74 (file):
1> file INSTALL cannot find
1> "G:/OpenGL/FreeGLUT/freeglut-3.0.0/lib/Debug/freeglut_staticd.pdb".
1>
1>
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: 命令“setlocal
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: G:\开发工具\OpenGL\Cmake\cmake-3.6.2-win32-x86\bin\cmake.exe -DBUILD_TYPE=Debug -P cmake_install.cmake
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmErrorLevel
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: exit /b %1
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmDone
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd”已退出,代码为 1。
由于不生成这个Static Lib也没有多大影响,这里就取消了这个选项。配置好CMake选项后,Generate生成的visual studio2013的项目如下:
打开freeglut.sln
编译,生成的库文件在CMake配置的CMAKE_INSTALL_PREFIX下,有三个文件夹include、bin、lib,和GLEW类似,将其内容复制到相应的位置。
freeglu配置完成。
GLTools的配置比较麻烦,主要是由于按照书中提供的网址()下载不到源代码。幸好在GitHub上找到一个GLTools的Linux的版本(地址:),使用其源代码编译生成GLTools库。
注意glew.c需要到GLEW的网站下其源代码得到,另外就是其include文件需要放到VC\include文件夹下,而且需要GLEW和freeglut都已配置完成。
在编译GLTools前需要更改其项目属性 > C/C++ > 预处理器右边的预处理器定义中添加 _CRT_SECURE_NO_WARNINGS
编译生成以后将Debug文件夹下的GLTools.lib复制到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib下
设置项目的依赖项
忽略特定依赖库
《超级宝典》的第一个例子: