移植QT到arm平台
下载Qt源码http://download.qt.io/archive/qt/https://www.qt.io/源码包(300-500M)--编译成库文件(后期编译成员时候直接链接库文件,运行程序的时候也链接库文件) ---pc版库文件, arm版库文件(交叉编译Qt源码)1.准备工作a) 1.交叉编译好的Qt库(放在linux虚拟机上的armqt5.5-gec.
·
源码包(300-500M)--编译成库文件(后期编译成员时候直接链接库文件,运行程序的时候也链接库文件) ---pc版库文件, arm版库文件(交叉编译Qt源码)
1. 准备工作
a) 1. 交叉编译好的 Qt 库(放在 linux 虚拟机上的 armqt5.5-gec.all.fonts.tar.bz2 )
b) 2. 裁剪编译好的 Qt 库(放在开发板 armqt5.5.tar.bz2 )
c) 3. 运行使用的依赖库(字体,触摸,总线库 dbus )( armlib-all.tar.bz2 )
d) 4. 开发板上使用的配置文件( profile )
e) 5. 字库文件( fonts.tar.bz2 )
f) 6. 交叉编译工具( arm-linux-gnueabi-4.5.1.tar.bz2 )
2. 搭建 pc 交叉 Qt 程序环境( linux 虚拟机 )
1. 安装交叉编译工具(就把 arm-linux-gnueabi-4.5.1.tar.bz2 解压 /opt 目录,配置环境变量)
a) /opt# tar -jxf arm-linux-gnueabi-4.5.1.tar.bz2
b) /opt# mv usr/local/arm/4.5.1/ ./
c) 把 export PATH=/opt/4.5.1/bin:$PATH 语句添加到 /etc/bash.bashrc 文件最后面重新打开终端
2. 安装交叉编译好的 Qt 库(就把 armqt5.5-gec.all.fonts.tar.bz2 解压在 /opt 目录 必须 )
3. 交叉编译 Qt 程序
a) 进入已经写好的 Qt 项目代码目录
i. loginwin.cpp LoginWin.pro loginwin.ui
ii. loginwin.h LoginWin.pro.user main.cpp
iii. gec@ubuntu:/mnt/hgfs/Qt/002/code/LoginWin$
b) 在执行 /opt/armqt5.5-gec/bin/qmake -- 会生成交叉编译的 Makefile 文件( 为了后期方便可以制作一个别名 alias armqmake='/opt/armqt5.5-gec/bin/qmake' 放在 /etc/bash.bashrc 文件最后面,后面使用就直接用 armqmake )
c) 执行 make --- 会生成 arm 版的 Qt 程序 (把 Qt 程序下载到开发板)
3. 搭建 arm 开发板运行环境( 下面所有操作是在开发板上 )
a) 1. 开发板 Qt 环境删除 进入 /opt/ 目录下 删除所有文件
b) 2. 把裁剪编译好的 Qt 库下载到开发板并且解压到 /opt 目录下 ( tftp 下载)解压后修改名字 mv armqt5.5 armqt5.5-gec
c) 3. 下载依赖库 armlib-all.tar.bz2 放在 /home/tiydy 目录下(如果没有 tiydy 目录就创建一个)
d) 4. 下载 profile 文件到 /etc/ 目录下
e) 5. 下载字库文件 fonts.tar.bz2 到 / usr/share 目录下并且解压
在运行 qt 程序
在开发板运行程序出现下面错误
from:tiydy-2015-10-16
process 146: D-Bus library appears to be incorrectly set up;
failed to read machine uuid: Failed to open "/etc/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not built with -rdynamic so unable to print a backtrace
Aborted
添加 dbus 库 --- 库在 armlib.tar.bz2 下面的 lib 里面
解压后,把 lib 中的库拷贝到开发板 lib 下
把 bin 下的文件拷贝到开发板 bin 目录
在开发板运行 dbus-uuidgen > /etc/machine-id ( 重定向创建文件 )
更多推荐



所有评论(0)