4

我想在 Windows 下将 GLEW 与 Qt 一起使用(如果重要,请使用 7)。

我所做的是去 GLEW 网站,下载 windows 包,然后将 glew.dll 放在 System32 文件夹中。在我的专业文件中,我引用了 .lib 文件LIBS += .../path_to_the_libs/glew32.lib和相同的glew32s.lib(不确定后者的用途)。在我的 QGLWidget 子类中,我确保它glew.h包含在之前<QGLWidget>,因此包含在gl.hand之前glu.h。在main()函数中,我做的第一件事是调用glewInit和调用glGetError,但我的应用程序退出时出现了一些奇怪的代码,比如一个非常大的负数。

我怀疑我做错了很多事情(我对 Qt 和 OpenGL 相对较新,对 GLEW 完全陌生),但我也怀疑主要错误之一是我认为库是使用 MSVC 构建,因此无法与 MinGW 链接...无论如何,任何人都可以提供如何使用 Qt 安装 GLEW 并使用它的分步说明吗?我将不胜感激。先感谢您

编辑: 伙计们,也许我要求的太多了,但我真的很想要一步一步的指导:)

4

2 回答 2

7

glewInit()在您准备好 OpenGL 上下文之前,您不应该打电话。在第一次调用之前调用它gl*,而不是在main. 这应该够了吧。

此外,不要同时使用glew32.liband glew32s.lib- 前者与 DLL 文件一起使用,后者是静态的(您的 .exe 变得更大,但您不必使用 .dll 分发您的应用程序)。决定并使用任何一个。

于 2010-11-19T13:54:24.450 回答
0

Qt 4.7 可以创建任何 OpenGL 上下文。使用 QGLFormat.setProfile() 和 QGLFormat.setVersion()

唯一的缺点是您仍然没有 OpenGL 3+ 绑定。

逐步解决方案:

  1. 创建 QGLWindget 的新子类。
  2. 在新类的构造函数中,使用正确的 OpenGL 编号设置新的 QGLContext。
  3. 调用 glewInit()。
  4. 将上下文传递给构造函数 QGLWidnet。

如果我没记错应该可以!GLEW dll 应放置在适当的系统文件夹中,并附加编译器选项,但它们与没有 QT 的 GLEW 相同。

于 2010-12-27T11:11:44.413 回答