0

我正在尝试用opengl和qt做一个cmake项目。

这是我包含opengl的cmake:

# opengl
set(QT_USE_QTOPENGL TRUE)
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
include_directories( ${OPENGL_INCLUDE_DIRS}  ${GLUT_INCLUDE_DIRS} )
set(OPENGL_LIBS ${OPENGL_LIBRARIES} ${GLUT_LIBRARY})

它找到了它们,这是 cmake 输出的一部分:

-- Found OpenGL: /System/Library/Frameworks/OpenGL.framework  
-- Found GLUT: -framework GLUT  

我可以在其中包含 OpenGL:

#include <QtOpenGL>

有了这个,它可以正确地找到 gl*glGetString(GL_VENDOR)或者glGetString(GL_VERSION)它们可以工作。

但我不能包括 GLUT 包括在内。

我在 Mac OSX 10.8.4、Qt 4.8、QtCreator 2.7.1 和 Opengl 2.1

请注意,Ubuntu 12.04 下的相同 cmake 文件让我GL/gl.h正确包含GL/glut.h

4

2 回答 2

4

但我不能包括 GLUT 包括在内。

既然已经在使用 Qt,为什么还要使用 GLUT?

GLUT 是一个用于窗口创建和事件循环处理的框架。Qt 是一个用于窗口创建和事件循环处理的框架。

你不能(好吧,不应该)在同一个程序中有两个框架做完全相同的事情(除非你有兴趣看到它们为相同的资源而战)。

于 2013-06-21T14:34:57.453 回答
0

在 OSX 上,您需要包含GLUT/glut.h,所以在您的代码中编写类似的内容:

#ifdef __APPLE__
    #include <GLUT/glut.h>
#else
    #include <GL/glut.h>
#endif
于 2013-06-21T12:30:13.700 回答