2019独角兽企业重金招聘Python工程师标准>>>
我们已经在Ubuntu上安装了PC版的QT,安装命令如下
sudo apt-get install qt4-*
现在我们需要安装qt在arm上运行的交叉编译环境。
1.从qt官方网站下载QT源码,
我们需要下载的是qt-embedded-linux-opensource-src-4.5.3.tar.gz
2.解压并改名
|
|
3.编译前的一些修改
打开qt-embedded-linux-opensourcesrc4.5.2-arm/src/gui/embedded/qmouselinuxtp_qws.h 加入
|
|
4.配置
configure配置详解
|
|
-embedded arm 启用arm交叉编译配置
-little-endian 低位在前
-qt-sql-mysql 添加mysql支持,如使用sqlite 可将mysql改成sqlite
-plugin-sql-mysql 启动msyql插件,同上
-no-scripttools 不编译QT脚本工具模式
-no-nis 不编译网络信息服务支持
-no-largefile 不加入大文件支持
-no-libmng 不加入MNG图形格式支持
-no-accessibility 不加入图形加速器的支持
-depths 16 色深 16位 ,可以从 1, 4, 8, 12, 15, 16, 18, 24, 32, all中选择
-nomake docs 不编译文档
-nomake demos 不编译demos
-nomake examples 不编译例程
-qt-zlib 启用zlib支持
-feature- 选择qt的特性,具体见src/corelib/global/qfeatures.txt
-feature-THREAD 启用多线程特性
-feature-CONCURRENT 启用并发特性,提供高性能的多线程api
-feature-EFFECTS 启用特殊的插件外观效果
-no-feature-CURSOR 不启用鼠标支持
-feature-SOUND 支持播放音频文件
-silent 使用安静编译模式
实际运用中,因为mysql编译发生错误,暂时去掉对mysql的支持,且加上对tslib的支持,编译参数如下:
./configure -embedded arm -little-endian -no-sql-mysql -qt-sql-sqlite -plugin-sql-sqlite -qt-mouse-tslib
-plugin-mouse-tslib -no-scripttools -no-nis -no-largefile -no-libmng -no-accessibility -depths 16
-nomake docs -nomake demos -nomake examples -qt-zlib -feature-THREAD -feature-CONCURRENT
-feature-EFFECTS -no-feature-CURSOR -silent -no-qt3support
5.编译
make
make install
之后在/usr/local/Trolltech/QtEmbedded-4.5.3-arm/目录下可找到我们所需要的qt for arm 编译执行环境。
让QT在板子上跑起来需要做的工作(未实际操作验证):
1. 吧编译完的lib库拷贝到文件系统中
|
|
还需要一个脚本来设置环境(该脚本结构一致,内容没有通用性,得根据屏和tslib的一致来设置):
|
|
使用Qt Creator来设计程序界面
Qt Creator是QT的跨平台IDE,可以直接用来设计板子上的Qt界面
首先需要在Qt Creator里加入qt for arm版本
在菜单tools->options里的 QT4->Qt Versions里添加一个版本,赋予qmake路径为 /usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin即可。之后可以先设计基面,用qt for pc编译测试完毕后更换版本为qt for arm重新编译。
今天在板子上用网络挂载的方式试运行了一下QT程序,效果还不错,步骤如下:
1.将QT库文件所在路径加入LD_LIBRARY_PATH中
2.配置下QT字体和插件路径QT_PLUGIN_PATH QT_QWS_FONTDIR
3.TS路径配置用迷你贵的配置就可以了
4.运行程序 xxx -qws