|
虽然可以直接在板子上跑QT,但是还是太慢了,不够pc用的爽,于是就尝试把qt库交叉编译到板子上了,这样开发速度会快好多。
主机是 ubuntu12.04 x64, 编译器GNU g++ 以及 arm-linux-gnueabihf-g++,板子cb2(其实什么板子都可以),
板子系统 lubuntu sever版,为什么不用desktop版,后面会说到。
1、下载qt库以及qt creator:
http://qt-project.org/downloads
在这个网址下载,我下的是
2、编译qt库
这里要编译两个库,一个是为了在pc上运行用的,另一个是交叉编译到板子上跑用的,步骤都一样。
1)解压后进入解压目录
2)进入如下目录:
找到这个conf文件,打开:
把编译器名称修改一下:
保存退出。
回到解压目录下:
3)
用终端进入解压目录,然后输入:
sudo ./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++-little-endian -opensource\
-host-little-endian -confirm-license -nomake demos-nomake examples
这里-embedded选项是声明交叉编译平台是arm,后面的-xplatform是指明交叉编译器的conf,就是我们刚才修改的那个,其实在qws文件夹下面随便找一个进去修改那个conf文件也行,自己新增一个文件夹也可以,不过貌似要是linux开头的。如果不指定xplatform的话就会默认用GNU g++。后面的选项,小端什么的就不用管了,当然选开源的opensource,然后节省时间就不编译demos什么的了。
等了好久好久。。。。。。。。。。。。
结束之后就很简单了:
sudo make
sudo make install
然后就没有然后了~交叉编译的库已经弄好了~默认安装在/usr/local/Trolltech/QtEmbedded-4.8.6-arm/下面
4)编译在pc上用的qt库
跟上面几乎一样,只是configure的时候有区别:
sudo ./configure -prefix /usr/local/qt-4.8.6-desktop-opensource -confirm-license -nomake demos\
-nomake examples
那个-prefix选项可以指定安装目录,大家找个喜欢的吧。这里就是默认用本地的g++来编译了,所以是pc能用的库,后面的都一样了。
编译一个要差不多2个小时,等的好辛苦。。。。。。。。
3、安装qt creator
直接运行下载下来的文件就好~
4、配置qt creator
tool->options,新增一个编译器,就是我们的arm-linux-gnueabihf-g++
把我们编译的两个qt库都加进去
默认的那个kit就是我们的desktop,选择对应的qt库就好了。
新增一个cubie的kit,就是跑在板子上的,保存设置。
下面来new 一个project,选择如上图。
两个kit都选上,因为desktop的那个用来在本地测试,cubie那个不能在pc上跑,只好在desktop那个测试没问题后编译成cubie的再把程序弄到板子上去。
来一个最简单的,拖个button上去吧,编译运行:
好了,在qt creator的左下方有个显示器一样的图标,可以选择编译成desktop还是cubie,测试没问题了我们就换成cubie的。
然后要跑到板子上了。
5、跑在板子上的qt
首先要把运行库弄到板子上,方法最简单的一个是把/usr/local/Trolltech/QtEmbedded-4.8.6-arm/ 的所有文件都复制到板子上的相同目录下,注意一定要是“相同目录”!!
另一个方法,如果板子上磁盘空间不够,那么就做一个镜像吧,先用终端进入到上面那个目录:
dd if=/dev/zero of=qt_lib_ext4.img bs=1M count=180
mkfs.ext4 -F qt_lib_ext4.img
chmod go+w qt_lib_ext4.img
mount qt_lib_ext4.img -o loop /mnt
cp -rf /usr/local/Trolltech/QtEmbedded-4.8.6-arm/* /mnt
chmod go-w qt_lib_ext4.img
然后到时候记得把这个镜像挂到 /usr/local/Trolltech/QtEmbedded-4.8.6-arm/ 下面,因为去看工程的makefile会发现动态链接库的路径是这个。当然180M好像很大,貌似是因为我当时忘了不编译demos和examples,大家看实际情况大小吧。
然后就把刚才编译好的文件,我的工程叫test1,编译生成的文件夹是build_test1_cubie_Debug,把整个文件夹拷过去就好。下面是sever版的lubuntu上的演示结果:
后面的大家想怎么玩就怎么玩啦,总之在pc上开发是爽多了~
编译qt的时候还有好多好多参数,我也还没研究呢,要继续学习才行!
之前我试过在desktop版的lubuntu上跑这个程序,但是没有窗口显示出来,也没有报错,不知道为什么,可能一些运行时的参数设置吧,换成命令行界面也不行。后来尝试了sever版的就可以了,不知道是不是原先的图形界面的接口问题,还是个疑问。由于我本来就是要弄一个图形操作界面,也就没去深究这个问题了。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|