OpenGL 程式設計/安裝/Windows
外觀
| 本節為內容缺失。 您可以透過 擴充套件它 來幫助華夏公益教科書。 |
從 Windows 95 開始的所有 Windows 版本都附帶了 OpenGL 實現(通常是 1.4 版)。 但是,如果您安裝(或更新)了顯示卡驅動程式,您可能正在使用顯示卡製造商自己的 OpenGL 實現。
OpenGL 庫通常可以以 opengl32.dll 的名稱在 \system32 資料夾中找到,該資料夾位於系統根資料夾(通常是 c:\windows)中。
與 OpenGL 相容的標題檔案捆綁在大多數編譯器中。 標標頭檔案的版本可能沒有完全更新到您正在執行的 OpenGL 實現。 如果是這樣,則必須使用 OpenGL 的擴充套件系統手動連結新函式,或使用 GLEW 等包裝器。
GLEW 的官方釋出旨在與 visualc++ 一起使用 - 但如果您使用的是 Code::Blocks 以及 MinGW/GCC,請不要擔心 - 您可以
- 直接連結到 .dll(而不是新增不相容 mingw 的
.lib) - 或者,您可以使用 MSys 重新編譯它並將其用作共享庫
cd glew-1.7.0/
make
- 或者,您可以靜態構建 GLEW:在連結器選項的連結器庫中新增 glew32s.lib,並在編譯器標誌中新增-DGLEW_STATIC到您的編譯器標誌。
- 連結:OpenGL 擴充套件包裝器庫 - 安裝
- 連結:glew-users : 我報告連結問題的郵件列表 - 希望 GLEW 開發人員會提供一個相容 MinGW 的二進位制發行版。
GLee 僅在 Windows 下以靜態方式編譯(不從 GNU/Linux 交叉編譯),但沒有此問題。
- freeglut Windows 開發庫 - 使用 -lfreeglut 而不是 -lglut32 連結;不要使用 Code::Blocks 嚮導進行 GLUT 專案,因為它特定於非免費 GLUT
- 在 Code::Blocks 中使用 OpenGL 和 GLUT - 優秀的教程;在包含非免費 glut.h 之前新增
#include <windows.h>
GLM 是一個僅包含標頭檔案的庫,因此您只需要將 GLM 版本解壓縮到一個目錄中,並將該目錄新增到專案屬性中的包含路徑中。
現在可以使用與 MXE 相容的環境來呼叫較新的教程 Makefile,例如
- 編譯 MXE
git clone https://github.com/mxe/mxe /opt/mxe
cd /opt/mxe/
# select your architecture in settings.mk, e.g. MXE_TARGETS := i686-w64-mingw32.static
make glew sdl2 sdl2_image freetype
cp -a .../glm /opt/mxe/usr/i686-w64-mingw32.static/include/
- 準備環境
PATH=/opt/mxe/usr/i686-w64-mingw32.static/bin:/opt/mxe/usr/bin:$PATH
export CXX=i686-w64-mingw32.static-g++
export EXTRA_CPPFLAGS=-DGLEW_STATIC
export EXTRA_LDLIBS=-lopengl32
export PKG_CONFIG=i686-w64-mingw32.static-pkg-config
- 像往常一樣輕鬆編譯
cd modern-tutorials/tutXXX/
make
除錯說明:由於一個錯誤,您需要透過以下方式將輸入管道傳輸到 GDBcat:
cd /opt/mxe/
make gdb
cd .../modern-tutorials/tutXXX/
cat | wine /opt/mxe/usr/i686-w64-mingw32.static/bin/gdb.exe ./triangle
sdl2-config --libs設定-mwindows選項,它將刪除命令黑視窗,但也刪除 stdout 和 stderr。
要檢視例如SDL_LogMessage輸出,您可以
- 強制控制檯模式
make LDFLAGS=-mconsole
- 或明確重定向 stderr
triangle.exe 2> stderr.txt
(如果您知道明確重定向的原因,請隨時解釋。)
瀏覽和下載 完整程式碼 