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)orが正しく検出さglGetString(GL_VERSION)れ、機能します。

しかし、GLUT インクルードを含めることはできません。

私は Mac OSX 10.8.4、Qt 4.8、QtCreator 2.7.1、および Opengl 2.1 を使用しています。

GL/gl.hUbuntu 12.04 で同じ cmake ファイルを使用すると、GL/glut.h正しくインクルードできることに注意してください。

4

2 に答える 2

4

しかし、GLUT インクルードを含めることはできません。

すでに Qt を使用しているのに、なぜ GLUT を使用したいのでしょうか?

GLUT は、ウィンドウ作成とイベント ループ処理のためのフレームワークです。Qt は、ウィンドウ作成とイベント ループ処理のためのフレームワークです。

同じプログラム内でまったく同じことを行う 2 つのフレームワークを使用することはできません (そうすべきではありません) (同じリソースをめぐってそれらが戦いを繰り広げているのを見たい場合を除きます)。

于 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 に答える