2012年6月1日 星期五

build qt 4.8 using qpa

qt 4.8 使用了新的架構來處理不同的繪圖系統, 在 qt 4.8 稱為  QtLighthouse, qt5 已經改為使用這個架構。在 qt 4.8 則同時有舊的方式和新的架構。就讓我們用 qpa 來編譯 qt 4.8 吧!

$ ls qt-everywhere-opensource-src-4.8.2/src/plugins/platforms

blackberry  eglconvenience      fb_base         linuxfb   platforms.pro  vnc      xlib
cocoa       eglfs               fontdatabases   minimal   qvfb           wayland
directfb    externalplugin.pri  glxconvenience  openkode  uikit          xcb

在 linux/X 上, 我們需要 xcb 這個 plugin 來完成繪圖的動作。xlib 我猜是舊的 qt 用的, qt5 已經強迫使用 xcb。

這裡我使用了shadow build 的方式。建立 qt.x11.x86.qpa 目錄, 在這目錄 compile qt。


../qt-everywhere-opensource-src-4.8.2/configure -no-qt3support -qpa  -opensource
make
make install

安裝後的目錄不是熟悉的 Qt-4.8.2, 而是 QtLighthouse-4.8.2,

$ ls QtLighthouse-4.8.2/plugins/platforms/

libqminimal.so


只有 libqminimal.so plugin, 沒有 xcb, 這個 plugin 無法顯示圖形。


我修改了 qt-everywhere-opensource-src-4.8.2/src/plugins/platforms/platforms.pro
加入
SUBDIRS += xcb
強迫使用 xcb, 這樣就會有 libxcb.so。前題要安裝 xcb 的開發檔案。
xcb 安裝請參考:
http://qt-project.org/wiki/Building_Qt_5_from_Git


至於使用 qpa 編譯出來的程式加上 -platform 就可以指定使用哪個 plugin。
./qt_tetris -platform xcb

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。