2016-05-14 21 views
-3

OpenGLでQtで作業しています。qt [OpenGL]がアンドロイドで動作しない

Desktop Qtでコンパイルして実行したコードを書きました。 Androidでコードをコンパイルしようとすると、OpenGLライブラリが宣言されていないというエラーが表示されました。

何が問題ですか?

エラー: - enter image description here

#include "mainwindow.h" 
#include <QApplication> 
#include <QGLFunctions> 
#include <QGLWidget> 

class app: public QGLWidget, QGLFunctions{ 
    public: 
    void initializeGL(); 
    void paintGL(); 
    void resizeGL(); 

}; 

void app::initializeGL(){ 
    qglClearColor(Qt::black); 
} 
void app::resizeGL(){ 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    glViewport(0,0,(GLint)200,(GLint)200); 
    glOrtho(0,100,100,0,-1,1); 
} 
void app::paintGL(){ 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glBegin(GL_QUADS); 

     glColor3f(1,0,0); 
     glVertex2f(0,100); 

     glColor3f(0,1,0); 
     glVertex2f(100,100); 

     glColor3f(0,0,1); 
     glVertex2f(100,0); 

     glColor3f(1,1,1); 
     glVertex2f(0,0); 

    glEnd(); 
} 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    app App; 
    App.show(); 

    return a.exec(); 
} 
+0

"Androidでコンパイルする"という意味はわかりませんが、実際には関係ありません。そのコードはAndroidアプリではなく、それ以上の移植は必要ありません。 –

+0

OpenGLヘッダーのインクルードがありません。 –

答えて

0

コンパイル済みのWindowsデスクトップバージョンQt5 5.0.2の前には、唯一のDirectX 9のOpenGLの上にそれを実装することにより、OpenGL ESの2のサポートを提供しANGLEに対して構築されますES 2は、従来の固定機能パイプラインをサポートしておらず、シェーダベースのパイプラインのみをサポートしています。

検索のいくつかの時間後、私はQtのbugtreckerで閉じられたバグ報告が見つかりました:あなたは「-openglデスクトップ」に渡すことで、ネイティブのOpenGLドライバを使用するためにはQt 5の独自のコピーを構築する必要があるよう https://bugreports.qt.io/browse/QTBUG-28715

が見えます設定する。 2番目のオプションでは、1.0から4.3までのOpenGLにアクセスする必要があります(カード/ドライバがサポートしている場合)。または、従来の固定機能パイプラインを使用しないでください。シェーダベースのもののみを使用してください。

関連する問題