源码包(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   ( 重定向创建文件 )
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐