踏入OpenGL大門 —— VS2015開發環境配置 (詳細圖文)

眼睛熊

---------------- 本文 ---------------

注意:筆者是以 Win10 + VS2015 為例

內容:安裝CMake、配置freeglut 、配置glew

版本:Window10、VS2015、CMake 3.8.0-rc-1、freeglut 3.0.0、glew 2.0.0

目標:使初學者不再為配置OpenGL相關環境苦惱

預熱

需要說明的是:OpenGL不需要安裝——它的實現早就在您的顯卡中存在了。

想要開發OpenGL程序,需要的只是它的一系列接口,而在真正開發時,也不需要在網上找OpenGL的頭文件,編譯器已經把關于OpenGL的頭文件放置在某一個位置中了。

查看OpenGL頭文件的方式是用VS隨便創建一工程(實例使用了預編譯頭),然后引入頭文件:

#include <gl\GL.h>

然后右鍵打開文檔、再在相應的選項卡上右鍵打開文件所在的文件夾,如下所示:


打開文檔
右鍵打開文件所在的文件夾
查看OpenGL頭文件

可以看到實例圖片中,包含這兩個OpenGL的頭文件:

GL.h:OpenGL所使用的函數和常量聲明。
GLU.h(OpenGL實用庫)所使用的函數和常量聲明。

不同的系統,這些文件的路徑和名字(大小寫)很可能是不同的,所以不用糾結這個問題,因為你若是直接引入這個頭文件,編譯則報錯。


直接引入OpenGL頭文件,編譯報錯

此時先引入windows頭文件即可:

// stdafx.h : 標準系統包含文件的包含文件,
// 或是經常使用但不常更改的
// 特定于項目的包含文件
//

#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>



// TODO:  在此處引用程序需要的其他頭文件
#include <Windows.h>
#include <gl\GL.h>
#include <gl\GLU.h>

然而,即使如此也并不能立即用代碼創建一個窗口來瞧一瞧,因為:

OpenGL自身并不包含任何窗口任務或者處理用戶輸入的函數。
OpenGL沒有提供任何用于表達三維物體模型、或者讀取圖像文件(例如JPEG文件)的操作。

所以熱身完畢。

準備

OpenGL既然沒有包含那些東西,那么我們自然需要用第三方軟件庫來完成這些功能,例如創建窗口、接受鼠標和鍵盤事件等。備選的第三方軟件庫還必須和OpenGL一樣支持跨平臺移植,于是出現兩個大家都在用的第三方軟件庫:freeGLUT 和 GLEW。

FreeGLUT 是GLUT的一個完全開源替代庫。
GLEW是一個簡單的OpenGL擴展工具庫

本文與其說是OpenGL的開發環境配置教程,不如說是OpenGL相關的第三方軟件庫的開發環境配置教程。

下載

GLEW只需要去官網下載最新版本就可以了,里面包含了相關的頭文件和編譯好的lib、dll文件。

而FreeGLUT在官網中下載到的文件需要在本地進一步編譯,才能被我們使用,所以本文使用CMake來幫助我們編譯FreeGLUT。

各種官網地址
OpenGL: https://www.opengl.org/
FreeGLUT: http://freeglut.sourceforge.net/
GLEW: http://glew.sourceforge.net/
CMake: https://cmake.org/

筆者提前準備了相應文件,不想麻煩的童鞋可以在這里下載它們

下載CMake:
打開CMake官網,點擊Download

下拉頁面

根據系統的不同,選擇對應的安裝文件,點擊即可下載(筆者選擇了第一個紅框選中的文件)。

下載完畢
下載FreeGLUT:
打開FreeGLUT官網,點擊Download
選中最新穩定版,點擊即可下載
下載GLEW:
打開GLEW官網,點擊二進制文件即可下載
下載完成
最終文件

最終文件
安裝CMake

沒什么特別的,一路next下來即可。


點擊next
勾選 I accept... ,點擊next

點擊next

點擊next

點擊Install,如果彈出權限詢問,選擇是即可。
點擊Finish,安裝完成
編譯FreeGLUT文件

解壓freeglut-3.0.0.tar,并創建CMake編譯文件輸出文件夾:


解壓freeglut-3.0.0.tar,并創建CMake編譯文件輸出文件夾

打開CMake(cmake-gui), 如下圖二者之一:

打開CMake(cmake-gui)
打開CMake(cmake-gui)

在 where is the source code 中選擇解壓freeglut的目錄,注意這個目錄內包含了CMakeLists.txt

在where to build the binaries 中選擇之前創建的CMake編譯文件輸出文件夾:


點擊箭頭指向的按鈕選擇對應的文件夾

freeglut解壓的文件夾,注意該文件夾內包含了CMakeLists.txt

點擊Configure:
點擊Configure

彈出的窗口中選擇對應的VS版本,筆者選擇的是VS2015,點擊Finish

等待完成,會出現 Configuring done 字樣

注意,如果出現錯誤提示,則先點擊File->Delete Cache之后,再點擊Configure,然后選擇不同的VS版本重試(前提是你的電腦確實安裝了該版本的VS):
如果出現錯誤提示

點擊Delete Cache之后,再點擊Configure,然后選擇不同的VS版本重試

Configur完成之后(注意勾選下圖列出的項,特別是FREEGLUT_BUILD_SHARED_LIBS 和FREEGLUT_BULID_STATIC_LIBS),點擊Generate生成VS工程文件:
點擊Generate

Generate成功

打開CMake輸出文件目錄,找到freeglut.sln文件,雙擊打開:


打開CMake輸出文件目錄

雙擊打開freeglut.sln

等待VS2015加載完成

注意測試工程環境:Dubug & Win32

點擊生成->生成解決方法:


編譯工程

等待編譯完成

注意此時編譯出來的是debug、win32版本的freeglut3.0.0文件——需要release版本,需要在Release下,再次編譯一下即可(不過,原來的32位文件就被覆蓋掉了):
注意此時工程環境:Release & Win32

編譯完成后,再次打開工程所在文件夾(即CMake輸出文件夾);此時已經編譯好了的freeglut文件就存放在lib、bin文件夾里面:
此時編譯好了的freeglut文件就存放在lib、bin文件夾里面

如果需要64位lib文件和dll文件,只需重新使用CMake 編譯生成,只不過選擇編譯器時選擇Win64而已:

CMake生成Win64 VS工程文件

Debug & 64位下編譯工程

Release & 64位下編譯工程

至此,準備工作完成,各種文件皆已準備妥當

glew、freeglut所需的文件。注意筆者并沒有將它們的lib、dll、.h文件摘出來存放在一個單獨的文件夾中,但后面你知道了必需哪些文件之后,就可以這么做了。

以下內容未包含CMake生成的64位工程文件;筆者生成的64位的freeglut VS工程文件夾為:freeglut 2

存放64位 freegult 的 lib 文件和 dll 所在的文件夾

它編譯出來的64 freegult 的 lib文件和 dll 文件在 下一篇中才會使用到

搭建OpenGL開發環境

創建一個C++控制臺工程,然后先運行或編譯下程序:


創建一個C++控制臺工程,名稱隨意取。
筆者選擇了默認設置,即包含了預編譯頭

運行或編譯剛剛創建的工程
配置包含目錄、庫目錄

配置VS包含目錄和庫目錄時,它們分別都需要設置兩個路徑——glew的include路徑、freeglut的include路徑以及glew的lib路徑和freeglut的lib路徑
點擊項目->屬性->VC++目錄:


打開項目的屬性

找到VC++目錄的包含目錄和庫目錄

點擊編輯

注意,這里的包含目錄簡單是說就是我們需要包含.h文件的文件夾,你也可以在把這些.h直接添加到工程中:


配置包含目錄

這是glew的頭文件所在目錄,你可以打開文件夾去看看都是哪些.h文件。

這是freeglut的頭文件所在目錄,你可以打開文件夾去看看都是哪些.h文件。

包含目錄配置完畢,點擊確定
配置庫目錄

這是freeglut所需要的庫文件路徑,你可以看看freeglut都需要什么 .lib文件

注意,freegult的庫文件(.lib)文件是你自己用CMake、VS2015最終編譯出來的,需要不同版本的 .lib 文件,只需要更改好后,重新編譯即可。

上面已經詳細的教給你釣魚的方法,以后freeglut版本更新后,例如freegult 3.1.0,只需再次CMake、VS2015編譯即可

這是glew所需要的庫文件路徑,你可以到里面看看glew都需要什么 .lib 文件

庫目錄配置完畢

顯式包含glew32.lib文件——以添加附加依賴項的方式:
點擊編輯

輸入glew.lib

依次點擊應用、確定,庫文件配置完成

程序運行所必需的 .dll 鏈接文件:

這是glew的.dll文件所在路徑
這是freeglut的.dll文件所在路徑,注意存在debug和release版本的 .dll 名稱上的差異,你可以自己到 ../bin/Release文件夾里面看看。

把這兩個.dll文件復制到exe同目錄下:


把.dll復制到我們的exe執行程序的同目錄下

至此,OpenGL 的開發環境配置完畢。

注意,本文使用了一種比較麻煩的配置方式,以后遇到其他的第三方庫也可以這樣配置。

這種方法比較安全,就算配置錯誤、復制錯文件、誤刪文件,比較容易恢復,最壞的情景也不過是刪除整個工程,重來一遍,而不會對系統造成傷害,在開發過程中埋下未知錯誤。

當然有一種一勞永逸的方法來配置OpenGL開發環境,這等到我們測試成功之后再介紹,不過這種方法不太安全,請你在確保你知道你在操作什么的時候再使用在這種一勞永逸的方法。

測試OpenGL開發環境

轉接下文,測試我們配置好了的開發環境

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容