QT5.12 交叉编译到hisi3516平台
QT5.12 交叉编译到hisi平台QT5.12 交叉编译到hisi平台一、 hisi交叉编译环境安装二、qt安装1. qt 下载2. qt安装三、 移植到hisi3516板上四、附录1 QT增加自己指定平台的编译方法QT5.12 交叉编译到hisi平台一、 hisi交叉编译环境安装参考 安装交叉编译工具:arm-himix200-linux简略摘要:下载后执行:tar -zxvf arm-him
QT5.12 交叉编译到hisi平台
QT5.12 交叉编译到hisi平台
一、 hisi交叉编译环境安装
参考 安装交叉编译工具:arm-himix200-linux
简略摘要:
- 下载后执行:
tar -zxvf arm-himix200-linux.tgz
cd arm-himix200-linux
sudo ./arm-himix200-linux.install
二、qt安装
1. qt 下载
- 下载链接 qt下载链接
2. qt安装
- 安装环境:
- Ubuntu 16.4 64位。
- hisi交叉编译工具链路径: /opt/hisi-linux (上面安装arm-himix200-linux时默认的路径)
- qt-everywhere-src-5.12.0 当前保存的位置 /opt
- 期望安装的位置 /opt, 如截图
- 安装步骤
-
切换到su权限, 并将下载的qt文件拷贝到/opt目录
-
tar xf qt-everywhere-src-5.12.0.tar # 解压QT
-
cd /opt/qt-everywhere-src-5.12.0 # 切换 目录到qt下, 准备安装
-
./configure -prefix /opt/arm-himix200_qt5.12.0 -release -opensource -confirm-license -static -shared -platform linux-g++ -xplatform linux-arm-himix200-linux-g++ -qt-freetype -no-pch -no-avx -no-openssl -no-cups -no-dbus -no-opengl -no-glib -no-xcb -no-eglfs -no-pkg-config -no-iconv -skip qtwebchannel -skip qtcanvas3d
解释:
- -prefix /opt/arm-himix200_qt5.12.0 值将交叉编译后的结果放到/opt/arm-himix200_qt5.12.0 目录
- -static 生成静态库 即.so库, 如果需要在板子上运行, 则必须加入该参数
- -platform linux-g++ -xplatform linux-arm-himix200-linux-g++ 只 本地采用 linux-g++ 编译, 交叉编译的工具链为linux-arm-himix200-linux-g++ 注: 如果xplatform 是自己制定的平台, 可能在.config时报错, 解决方法见最下方附录1:
ERROR: Invalid target platform 'linux-arm-himix200-linux-g++'.
- 如果不想编译qt 的example 可以加入 -nomake examples 命令
-
make -j8 # 漫长的编译, 可以根据自己的电脑选择不同的编译条数
-
make install -j8
-
注: 如果有编译错误, 直接修改源码进, 然后重新make (我在某次编译时出现过这个问题, 在写这篇blog的时候没有出现 所以没有列出具体的修改方法)
-
三、 移植到hisi3516板上
- 前提条件,hisi板的各个环境已经初始化完成
-
copy 编译出的demo到开发板上
demo路径opt/arm-himix200_qt5.12.0/examples/widgets/widgets/analogclock
目录下的analogclock
可执行文件
2.拷贝各个so库到板子的/lib目录下, 路径:/opt/arm-himix200_qt5.12.0/lib
简单起见, 也可在运行时提示缺什么库拷贝什么库 -
在板子上设置环境变量
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=600x1024:mmSize=600x1024:offset=0x0:tty=/dev/ttyAMA0 export QT_QPA_FONTDIR=/lib/fonts export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/platforms export QT_DEBUG_PLUGINS=1
解释:
QT_QPA_PLATFORM 指定平台的运行环境为linuxfb 分辨率为600x1024
QT_QPA_FONTDIR 字库的位置, 改为板子实际的位置
QT_QPA_PLATFORM_PLUGIN_PATH 指定PLUGIN_PATH的位置, 在当前环境下即linuxfb的位置。 如果板子上没有, 从/opt/arm-himix200_qt5.12.0/plugins/platforms
目录下拷贝
QT_DEBUG_PLUGINS开启debug调试模式, 用于启动时的调试, 调试完毕后删除该变量 -
在开发板上运行
./analogclock
提示ERROR: Feature 'xcb' was enabled, but the pre-condition 'features.thread && libs.xcb && tests.xcb_syslibs && features.xkbcommon-x11' failed.
解决方法 指定环境变量为
Llinuxfb
一般在嵌入式板子上都是使用linuxfb的,说明第三步的环境变量有问题, 再检查下。 -
demo运行成功
四、附录1 QT增加自己指定平台的编译方法
- cd到qtbase/mkspecs目录,找一个相似的工具链, cp一份并修改为指定的工具链
-
cd qtbase/mkspecs # cd到该目录 cp linux-arm-gnueabi-g++/ linux-arm-himix200-linux-g++ -r # 拷贝一份linux-arm-gnueabi-g++ cd linux-arm-himix200-linux-g++ # 切换到新复制的目录并修改
-
当前qmake.conf的内容为:
-
修改为
即重新指定交叉编译链 -
完成 , 重新回到qt安装步骤继续安装
-
更多推荐
所有评论(0)