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
(如果您知道明确重定向的原因,请随时解释。)
浏览和下载 完整代码