目录
一、交叉编译QT库
二、安装QT Creator
三、部署开发板环境
1. cd qt-everywhere-opensource-src-5.9.1/qtbase/mkspecs
2. cp -r linux-arm-gnueabi-g++ aarch64-himix100-linux
3. cd aarch64-himix100-linux/
4. vim qmake.conf(修改qmake配置)
#
# qmake configuration for building with arm-linux-gnueabi-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)
DEFINES += EGL_FBDEV
# gpu 注意路径为Hi3559的SDK目录
QMAKE_INCDIR_EGL += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/include
QMAKE_LIBDIR_EGL += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/lib
QMAKE_LIBS_EGL += -lmali
QMAKE_INCDIR_OPENGL_ES2 += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/include
QMAKE_LIBDIR_OPENGL_ES2 += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/lib
QMAKE_LIBS_OPENGL_ES2 += -lmali
EGLFS_DEVICE_INTEGRATION = eglfs_mali
# modifications to g++.conf
QMAKE_CC = aarch64-himix100-linux-gcc
QMAKE_CXX = aarch64-himix100-linux-g++
QMAKE_LINK = aarch64-himix100-linux-g++
QMAKE_LINK_SHLIB = aarch64-himix100-linux-g++
# modifications to linux.conf
QMAKE_AR = aarch64-himix100-linux-ar cqs
QMAKE_OBJCOPY = aarch64-himix100-linux-objcopy
QMAKE_NM = aarch64-himix100-linux-nm -P
QMAKE_STRIP = aarch64-himix100-linux-strip
load(qt_config)
5. vim autoconfigure.sh(自动编译脚本)
#!/bin/sh
./configure \
-v \
-prefix /opt/arm_qt/qt-5.9.1 \
-release \
-opensource \
-no-accessibility \
-make libs \
-no-iconv \
-no-separate-debug-info \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-xcb \
-xplatform aarch64-himix100-linux \
-optimized-qmake \
-linuxfb \
-pch \
-qt-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib
6. ./ autoconfigure.sh(启动脚本)
7. make -j4
8. make install
注意事项:
1. 修改qmake.conf时,其中的hisix100视情况而定。
2. 创建一个脚本文件之后需要chmod 7777 xxx,给他修改权限,否则可能会报错找不到该文件。
3. make(make -j4,多线程)命令执行完之后,如果出现:
Project ERROR: Unknown module(s) in QT: serialport
makefile:44: recipe for target ‘sub-serialbus-make_first’ failed
make[2]: * [sub-serialbus-make_first] Error 3
makefile:44: recipe for target ‘sub-src-make_first’ failed
make[1]: * [sub-src-make_first] Error 2
makefile:222: recipe for target ‘module-qtserialbus-make_first’ failed
make: * [module-qtserialbus-make_first] Error 2
表示serialport 模块未安装;解决方法:sudo apt-get install libqt5serialport5-dev libudev-dev,但是安装完成后再次编译依然是以上错误,最好删除编译过的文件,重新解压安装包,再次编译。
sh: python: command not foundProject ERROR: Building QtQml requires Python.make: *** [makefile:335: module-qtdeclarative-make_first] Error 3
解决方法:sudo apt-get install python
4. 如果make时提示权限不够,需要使用sudo make,但是使用sudo会报找不到arm-linux-hisivX00-XXX这个错误,这时候可以先sudo su ,source /etc/profile,然后再make。
5. 当虚拟机/opt/arm_qt/qt-5.9.1/lib/ 目录下面出现了关于QT的库说明交叉编译文件生成成功。
./qt-opensource-linux-x64-5.12.6.run(5.12.6的版本号仅供参考)
出现安装界面后,只需next/skip即可安装成功,安装完成之后还需要再对QT Creator进行设置。
1. Tools->Options->Build&Run->Compilers->add添加hisi的编译工具
add->GCC->Compiler path: /opt/hisi-linux/x86-arm/aarch64-himix100-linux/aarch64-himix100-linux-g++(该路径仅供参考)
2. Tools->Options->Build&Run->Debuggers->add添加hisi的调式工具
Path: /opt/hisi-linux/x86-arm/arm-hisi400-linux/bin/aarch64-himix100-linux-gdb(该路径仅供参考)
3. Tools->Options->Build&Run->QT Version->add添加QT的版本信息
/opt/arm_qt/qt-5.9.1/bin/qmake(该路径仅供参考)
4. Tools->Options->Build&Run->Kit->add添加构建套件
Name: hisix100(自填)
Compiler: 选择第一步添加的编译工具
Debuggers: 选择第二步添加的调试工具(选填)
QT version: 选择第三步添加的版本号
其他选项默认即可。
如果添加完编译工具的数据之后,在Manual下面的hisix100前面出现了红色的感叹号,说明该编译工具不可用,而且应该是添加编译工具时的路径选择有问题或者是没有修改版本号所致。
主要内容:
export LD_LIBRARY_PATH
export QT_ROOT=/mnt/arm-qt
export PATH=$QT_ROOT/bin:$PATH
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:/mnt/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_FONTDIR=$QT_ROOT/fonts
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0:mmsize=1920x1080
注意事项:
1. 配置环境变量时,我是直接写到profile里的(建议配置启动脚本),不然每启动一个客户端时都需要重新配置一次;多个变量之间可以用冒号分隔。
2. 注意窗口污染问题,如果demo一直出错的话,可以尝试重新开一个session窗口,然后再运行测试demo