全志a20 x11 qt5 環境 搭建
阿新 • • 發佈:2019-02-17
記錄 qt5 x11 opengl 過程
我使用的是 debian 7 系統 下載 debian 基礎包
安裝環境
apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev \ libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev \ libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev \ libxcb-sync0-dev libxcb-render-util0 libxcb-render-util0-dev \ libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev \ libxcb-glx0-dev
也安裝一下
apt-get install zlib1g-dev
下載qt5.4 原始碼 git 太慢了 我直接下載 打包好的 網速還是很給力的
http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.7z
解壓進入 原始碼路徑
mkdir qtbase/mkspecs/devices/linux-sunxi-g++
cat> qtbase/mkspecs/devices/linux-sunxi-g++/qplatformdefs.h <<
"EOF"
#include "../../linux-g++/qplatformdefs.h" EOFcat > qtbase/mkspecs/devices/linux-sunxi-g++/qmake.conf << "EOF" # # Qt system configuration for Sunxi Cortex-A8 devices # # Mali library and include files should be found in the standard locations in # /usr in sysroot. # include(../common/linux_device_pre.conf) QT_QPA_DEFAULT_PLATFORM = xcb DISTRO_OPTS += deb-multi-arch DISTRO_OPTS += hard-float SYSROOT_INC = $$[QT_SYSROOT]/usr/include SYSROOT_LIB = $$[QT_SYSROOT]/usr/lib COMPILER_FLAGS = -marm -march=armv7-a -mtune=cortex-a8 QMAKE_CFLAGS += -I $${SYSROOT_INC} \ -I $${SYSROOT_INC}/$${GCC_MACHINE_DUMP} QMAKE_CXXFLAGS += -I $${SYSROOT_INC} \ -I $${SYSROOT_INC}/$${GCC_MACHINE_DUMP} QMAKE_CXXFLAGS_RELEASE += -O3 QMAKE_LFLAGS += -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib \ -Wl,-rpath-link,$$[QT_SYSROOT]/lib QMAKE_LIBS += -lrt -lpthread -ldl # Mali EGL and GLES2 are in fact located in the same .so file. QMAKE_INCDIR_EGL = $$[SYSROOT_INC] QMAKE_LIBDIR_EGL = $$[SYSROOT_LIB] QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL} QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL} QMAKE_LIBS_EGL = -lEGL QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 include(../common/linux_arm_device_post.conf) load(qt_config) EOF
配置qt5
SUNXI_SYSROOT 是 我們debian 的目錄
./configure -v -debug -opensource -confirm-license -no-use-gold-linker \ -nomake examples -nomake tests -nomake tools -no-cups -no-pch -no-linuxfb \ -skip qtquick1 -skip declarative -skip multimedia -opengl es2 -no-eglfs \ -system-xcb -system-zlib -sysroot $SUNXI_SYSROOT -device linux-sunxi-g++ \ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -prefix /opt/qt/sunxi
make -j8
make install
編譯過程可能遇到找不到 dbus 加上 no-dbus 即可
完成 刷機到a20 應該可以了
編譯qt 之前需要 安裝mali 環境 後面來補充