【问题标题】:Include OpenGL Libraries in C++, Windows 7在 C++、Windows 7 中包含 OpenGL 库
【发布时间】:2012-09-04 18:25:55
【问题描述】:

我正在阅读“OpenGL 入门”教程,并且遇到了以下文字:

"如果你使用的是C/C++,那么你必须先设置一个可以链接到OpenGL的构建环境(Visual Studio项目、GNU makefile、CMake文件等)。在Windows下,你需要静态链接到一个名为 OpenGL32.lib 的库(请注意,如果您正在构建 64 位可执行文件,您仍然链接到 OpenGL32.lib。“32”部分没有意义)。Visual Studio 和大多数 Windows 编译器都带有这个库。"

我只是想使用 vim 编写我的源文件,我不想使用像 VS 这样的 IDE,据我了解,OpenGL 库随 Windows 7 一起提供(如果我错了,请纠正我)。此后,本文不再详细介绍如何包含 OpenGL 库,而我真正的问题是,如何在源文件中包含和使用 OpenGL 库?

是像写#include <name of lib> 一样简单,还是我需要在我的编程环境中做一些其他事情,比如编辑我的路径变量?

编辑:我正在使用 MinGW g++/gcc 编译器

【问题讨论】:

  • 你将使用什么编译器?
  • 这取决于使用的链接器,您使用的是 Visual Studio 吗?生成文件?制作?还有什么?
  • 头文件当然不随 Windows 本身提供,但你的编译器应该有它们。如果您在 vim 中,则需要将头文件和库作为参数提供给编译器和链接器。如果您使用的是 make,这将发生在 make 文件中,否则您需要手动执行。

标签: c++ windows opengl compilation c-preprocessor


【解决方案1】:

要访问包含文件,您需要一个特殊的支持库。其中不止一个,但我会推荐 GLEW。您可以在http://glew.sourceforge.net/ 找到 GLEW 接口。

这样做的原因是只有非常旧版本的 OpenGL 标头可在 Windows 上作为默认值使用。较新的接口是间接可用的;您必须询问功能地址。然而,这是由 GLEW 为您完成的。

所以你只需要包含,并用glewInit();做一些初始化;

这与 Linux 和 Windows 都兼容,尤其是在您使用 MinGW 时。链接时,我使用以下内容:

MY_LIBS = -lglew32 -lopengl32 -lWs2_32 -lole32 -lcomctl32 -lgdi32 -lcomdlg32 -luuid

我可以推荐使用通用 makefile,请参阅 http://sourceforge.net/projects/gcmakefile/

请注意,在初始化 GLEW 之前,您还必须为 OpenGL 设置 context。这取决于环境以不同的方式完成。当你打开一个窗口时,它就完成了。对于可移植库,我可以推荐glfw 库或freeglut

【讨论】:

  • GLEW 不会为您进行上下文设置。此外,您仍然需要与 opengl32.lib 链接,在您的情况下,这是由您建议的 -lopengl32 链接器标志完成的。
  • 谢谢,我添加了有关上下文创建的信息。
猜你喜欢
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2011-12-14
相关资源
最近更新 更多