本文共 1550 字,大约阅读时间需要 5 分钟。
上一遍讲到如何在pc上交叉编译出可编写用于cubietruckserver版linux上的app的qt,主要操作都在pc上,使用的是fb,没有Desktop也可运行。
但是这样编译出的程序也会有个问题,那么就是会与系统抢fb和鼠标,造成相互擦除,如下图:
如何编译出可用于arm 版 x windows的app呢?
这里以安装qt4为例,目前应该是qt4.8.1(受限于apt服务器)
前提:网络可用或者下载我上传的包
一、环境说明
1、编译平台:cubietruck
2、操作系统:armhf-ubuntu 13.04
3、qt版本:4.8.1
二、下载地址
1、系统镜像:http://dl.cubieboard.org/software/a20-cubietruck/ubuntu-desktop/
2、qt离线包:链接:http://pan.baidu.com/s/1skPxPal 密码:1vzk
3、分区调整工具:链接:http://pan.baidu.com/s/1bO64Yq 密码:xvjq
三、烧写系统
1、在windows下使用Phoenixsuit将镜像写到cubietruck中
2、下载分区调整工具,解压bin.tar.gz,将nand-part复制到系统/bin中,然后执行以下命令将nandb 2G扩充到7G:
sudo nand-part /dev/nand 32768'bootloader 131072' 'rootfs 14778368'
重启,然后再执行:sudo resize2fs /dev/nandb就成功了,使用sudo df -h查看是否变成6.9G了
四、安装qt
1、网络安装
sudo apt-get install libqt4-devlibqt4-dbg libqt4-gui libqt4-sql qt4-dev-tools qt4-doc qt4-designerqt4-qtconfig qtcreator
2、离线安装
下载qt离线包,解压,进入文件夹,执行install.sh(其实就是把里面的deb包全部复制到/var/cache/apt/archive中)
然后执行网络安装一样的操作。
解释:apt-get安装时,会先检查/var/cache/apt/archive中是否已经存在deb,若不存在,从网络上下载,若存在,直接安装。
如果我的链接失效了,nand-part可以从其他版本armhfOS中找到,可以先刷其他系统,或者刷到sd卡,从sd卡中提取,deb包就必须依赖网络了,可以在有网的地方下载后将/var/cache/apt/archive中deb包备份,因为包很多,建议在下载之前,将其中清空,然后再下载,以免备份太多无用的包。
五、移植qt
1、lib移植
通过 apt-get安装的qt4的库安装在/usr/lib/arm-linux-gnueabihf中,将其中所有libQt*打包放到目标开发板对应的位置即可
来一张移植的图(ubuntu中开发,lubuntu中移植)
题外话:
一直以来,看到大家都说基于framebuffer比较省资源,高效率,但是我在实际使用过程中,发现基于以上图片的动态画面程序,在frame buffer上执行很卡,但是在xserver上很快、很顺畅,不知道是什么原因,同一块板子,可能是x server做了什么优化。所以我才在framebuffer成功后依然要测试arm x server,如果这个问题没有解决,建议在一些需要快速反应的app,使用xserver版本的qt进行编写qt。
另外说一下,这个方法安装非常快,网速快的话十几分钟就ok了,跟run版本的都快接近了。