windows7 嵌入式qt套件_移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

转载地址:http://blog.csdn.net/lizuobin2/article/details/52673494

目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for windows ,本文就来介绍一下QT在嵌入式环境的搭建。

移植以到 JZ2440 为例,使用韦老大提供的 ubuntu9.10 虚拟机作为移植环境。当然,其它虚拟机也是可以的,我同样在 ubuntu14.04 移植成功,只不过需要额外装一些库,后面我会简单提及。

此外,我尝试使用 4.3.2 版本的交叉编译工具编译 Qt5.6 ,编译过成功很多错误,编译成功之后使用 qt 编译应用程序时也存在问题,因此我是用的是友善提供的 4.4.3 版本的交叉编译工具。建议新手使用与我相同的编译环境。

因为我们更换了编译工具,因此,我们有接下来的4个工作。

1、重新编译内核

2、制作文件系统

3、移植tslib

4、移植qt

教程涉及的资料:

1、交叉编译器

arm-linux-gcc-4.4.3.tar.gz        .链接:http://pan.baidu.com/s/1nvJF8ud 密码:oi57

2、针对于 JZ2440 的内核补丁以及源码

linux-2.6.22.6.tar.bz2           .链接:http://pan.baidu.com/s/1gf0oZn1 密码:jrp6

linux-2.6.22.6_jz2440.patch        链接:http://pan.baidu.com/s/1c1CWgTE 密码:uwuu

4.3寸LCD_mach-smdk2440.c          链接:http://pan.baidu.com/s/1boZsKwf 密码:1xml

3、busybox

busybox-1.22.1.tar.bz2           .链接:http://pan.baidu.com/s/1cee6CI .密码:lv81

4、tslib                      .

tslib-1.4.tar.gz

5、qt5.6 源码                      链接:http://pan.baidu.com/s/1jINj3IQ 密码:6kkc

qt-everywhere-opensource-src-5.6.0.tar.gz 链接:http://pan.baidu.com/s/1kVnV9oN 密码:r7cm

一、更换交叉编译器

首先,将下载好的文件全部放在 /work 目录下

1、解压交叉编译器

sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C /     #展开在根目录

ls /opt/FriendlyARM/toolschain/4.4.3/bin        #检查是否生成了编译目录

2、设置环境变量

sudo vi /etc/environment

将现在原有的交叉编译器路径替换为我们新解压的交叉编译器,举例:

[cpp] view plain

#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin"//注释

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.4.3/bin"//增加

后期测试时我发现这里是有问题的,由于我的安装目录都指定的是 usr 目录,需要 root 权限,然而在 environment 中设置的环境变量导致使用 root 权限 make install 过程中出现了个别的 command not found ,于是我将环境变量放到了 /etc/profile 中,这个文件是对所有用户生效的。至于environment

百度了一下是系统环境变量按说应该没问题,但是的确出现了问题。索性还是大家还是直接搞到 profile 中吧。

3、重启虚拟机

4、检查是否更换成功

arm-linux-gcc -v

3f288ee285423cc6e29fa526842ca321.png

如图,更换完毕,我们的编译器就变为 4.4.3 版本了。

二、重新编译内核

如果你不是jz2440也没关系,使用你曾经移植好的内核,重新编译即可,注意内核需要开启EABI的支持,如果你是jz2440,按照下面的步骤操作即可。

1、解压

tar jxvf linux-2.6.22.6.tar.bz2

2、打补丁

cd linux-2.6.22.6

patch -p1 < ../linux-2.6.22.6_jz2440.patch

如果你是 4.3 寸的 JZ2440 ,替换 LCD 驱动,3.5寸跳过此步

mv ../4.3寸LCD_mach-smdk2440.c arch/arm/mach-s3c2440/mach-smdk2440.c

3、配置内核支持 EABI

make menuconfig

kernel features->

use the arm eabi to .... //选中这一项

4、修改 makefile ,不改的话 4.4.3 编译器编译时会报错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值