Qt5.9.7 移植到Hi3536,支持OpenGL和tsLib

Qt 5.9爲LTS版本

  1. 軟件下載
    http://download.qt.io/archive/qt/5.9/5.9.7/single/
    說明:zip爲windows版; tar.xz爲linux版

  2. 解壓軟件

 xz qt-everywhere-opensource-src-5.9.7.tar.xz
 tar -xf qt-everywhere-opensource-src-5.9.7.tar
  1. 創建Hi3536編譯配置
 # 進入平臺配置目錄
cd qt-everywhere-opensource-src-5.9.7/qtbase/mkspecs
# 複製linux-arm-gnueabi-g++爲linux-hi3536-g++
cp -ar linux-arm-gnueabi-g++ linux-hi3536-g++
# 修改 qmake.conf,配置如下
#
# qmake configuration for building with arm-linux-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

include(devices/common/linux_device_pre.conf)

DEFINES += EGL_FBDEV

# gpu  注意路徑爲Hi3536的SDK目錄
QMAKE_INCDIR_EGL += /home/ywh/softPackage/Hi3536_SDK_V2.0.6.0/mpp_single/component/gpu/release/include
QMAKE_LIBDIR_EGL += /home/ywh/softPackage/Hi3536_SDK_V2.0.6.0/mpp_single/component/gpu/release/lib
QMAKE_LIBS_EGL   += -lmali
QMAKE_INCDIR_OPENGL_ES2 += /home/ywh/softPackage/Hi3536_SDK_V2.0.6.0/mpp_single/component/gpu/release/include
QMAKE_LIBDIR_OPENGL_ES2 += /home/ywh/softPackage/Hi3536_SDK_V2.0.6.0/mpp_single/component/gpu/release/lib
QMAKE_LIBS_OPENGL_ES2 += -lmali

# modifications to g++.conf
QMAKE_CC                = arm-hisiv400-linux-gcc -march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
QMAKE_CXX               = arm-hisiv400-linux-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
QMAKE_LINK              = arm-hisiv400-linux-g++
QMAKE_LINK_SHLIB        = arm-hisiv400-linux-g++

# modifications to linux.conf
QMAKE_AR                = arm-hisiv400-linux-ar cqs
QMAKE_OBJCOPY           = arm-hisiv400-linux-objcopy
QMAKE_NM                = arm-hisiv400-linux-nm -P
QMAKE_STRIP             = arm-hisiv400-linux-strip

EGLFS_DEVICE_INTEGRATION = eglfs_mali

include(devices/common/linux_arm_device_post.conf)

load(qt_config)  
  1. Qt編譯參數
./configure -prefix /opt/qt597_Hi3536 -opensource -confirm-license -release \
-strip -linuxfb -qt-zlib -no-gif -qt-libpng -qt-libjpeg -qt-freetype \
-no-rpath -no-pch -no-avx -no-openssl -no-cups -no-dbus -no-pkg-config \
-xplatform linux-hi3536-g++ -make libs -eglfs -opengl es2 -no-glib \
-nomake examples -nomake tools -tslib -qt-sqlite \
-I/usr/local/arm3536/tslib-1.4/include \
-L/usr/local/arm3536/tslib-1.4/lib

說明:
-prefix: 安裝目錄
-xplatform: 平臺選擇
-eglfs: 啓用eglfs, OpenGL依賴
-opengl es2: 啓用openGL ES 2.0
-tslib: 啓用tslib

  1. 編譯&安裝
make -j4 & make install     # -j4: 啓用4線程同時編譯,提升編譯速度
  1. 移植
    在目標板上/lib目錄下創建Qt文件夾
    將安裝文件夾下的lib、plugins、和qml拷貝到目標板的/lib/Qt文件夾下
    配置/etc/profile
# 將/lib/Qt/lib添加到目標板的LD_LIBRARY_PATH環境變量中
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib:/lib/Qt/lib:/lib/Qt597/lib:/home/app/lib"

#Qt配置
export QT_ROOT=/lib/Qt
export QT_QPA_PLATFORM=eglfs    // 指定QPA平臺
export QT_QPA_EGLFS_FB=/dev/fb0   //指定QPA的framebuffer
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_EGLFS_WIDTH=1280
export QT_QPA_EGLFS_HEIGHT=800
export QT_QPA_GENERIC_PLUGINS=tslib
export QML_IMPORT_PATH=$QT_ROOT/qml
export QML2_IMPORT_PATH=$QT_ROOT/qml

export LD_LIBRARY_PATH
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章