Qt5 opengl コンテキストでプログラムを書いています。デスクトップ (fedora 23) でうまく動作します。しかし、私はそれをpi 2で実行する必要があります。そのため、Qt5のソースコードをどこからでもダウンロードし、piでネイティブにコンパイルしました。pi でプログラムをコンパイルして実行しようとすると、次のエラーがスローされます。
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qtフォーラムでは、Raspberry piでXCBがeglと統合できないことがわかりました。また、Qt ソース コードを構成していたとき、x オプションの EGL は no でした。しかし、GLX は有効になっていました。piでGLXを使用するようにQXcbIntegrationを設定する方法はありますか?
XCB と egl の統合を修正しようとしていました。そこで、qtbase の config.tests/qpa ディレクトリで egl-x11 テストを再コンパイルして、エラーを確認しようとしました。出力は次のとおりです。
g++ -c -pipe -O2 -Wall -W -fPIC -I. -isystem /usr/include/libdrm -I../../../mkspecs/linux-g++ -o egl-x11.o egl-x11.cpp
egl-x11.cpp: In function ‘int main(int, char**)’:
egl-x11.cpp:47:20: error: invalid conversion from ‘EGLNativeDisplayType {aka void*}’ to ‘Display* {aka _XDisplay*}’ [-fpermissive]
egl-x11.cpp:49:11: error: invalid conversion from ‘EGLNativeDisplayType {aka void*}’ to ‘Display* {aka _XDisplay*}’ [-fpermissive]
egl-x11.cpp:50:79: error: invalid conversion from ‘Window {aka long unsigned int}’ to ‘EGLNativeWindowType {aka void*}’ [-fpermissive]
egl-x11.cpp:51:26: error: invalid conversion from ‘EGLNativeWindowType {aka void*}’ to ‘Window {aka long unsigned int}’ [-fpermissive]
/usr/include/X11/Xlib.h:2251:12: error: initializing argument 2 of ‘int XDestroyWindow(Display*, Window)’ [-fpermissive]
Makefile:530: recipe for target 'egl-x11.o' failed
make: *** [egl-x11.o] Error 1
XCB と EGL の統合を修正する方法はありますか?
ラズベリー pi で EGL も GLX 統合もできない場合、pi でアプリケーションを実行するにはどうすればよいですか?