版权声明:转载请注明出处 https://blog.csdn.net/understand125/article/details/87968043
Qt 5.9为LTS版本
-
软件下载
http://download.qt.io/archive/qt/5.9/5.9.7/single/
说明:zip为windows版; tar.xz为linux版 -
解压软件
xz qt-everywhere-opensource-src-5.9.7.tar.xz
tar -xf qt-everywhere-opensource-src-5.9.7.tar
- 创建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)
- 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
- 编译&安装
make -j4 & make install # -j4: 启用4线程同时编译,提升编译速度
- 移植
在目标板上/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_FONTDIR=$QT_ROOT/lib/fonts
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=720 # 测试验证貌似长宽需为16:9;设置为800时,eglfs创建surface失败0x300b
export QT_QPA_EGLFS_PHYSICAL_WIDTH=216
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=135
export QT_QPA_EGLFS_DEPTH=16
export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
export QT_QPA_GENERIC_PLUGINS=tslib
export QML_IMPORT_PATH=$QT_ROOT/qml
export QML2_IMPORT_PATH=$QT_ROOT/qml
#调试信息开关
#export QT_QPA_EGLFS_DEBUG=1
#export QT_LOGGING_RULES=qt.qpa.*=true
export LD_LIBRARY_PATH