QT的移植
QT可以 windows编译,ubuntu也可以编译:
运行也是在对应的平台。
我们想把 QT程序放到开发板上去运行。
在ubuntu搭建一个 arm-Qt 的编译环境。: qmake ....
在 arm开发板上搭建一个 arm-qt的运行环境: qtlib
如何把 QQ程序 放到ARM开发板上运行:
把 QQ工程 用 ARM版本的Qt 重新编译一次。
1. Qt 移植, 把一个可以在windows上运行的程序,放到 ARM开发 板上运行。
要在 ubuntu 上搭建一个 Qt for arm 的编译环境。
2. 安装一个 2014版本的 交叉编译工具
arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
sudo tar jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686- pc-linux-gnu.tar.bz2 -C /usr/local
在执行 sudo ./myln.sh 创建软连接:快捷方式 arm-linux-
3. 设置 PATH路径
当前终端有效(重启无效): export PATH=/usr/local/arm2014.05/bin:$PATH
每次有效: 修改 /home/china/.bashrc 脚本(每次启动终端自动运 行的脚本)
添加到最后一行: export PATH=/usr/local/arm2014.05/bin:$PATH
4. 测试: arm-linux-gcc -v
gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)
5. Qt for arm 的qt的编译工具哪里来?
QT源码包在官方网站下载: qt-everywhere-opensource-src5.9.1.tar.xz
以下的步骤是如何编译 QT源码包:最后 生成一个 目标文件夹: /usr/local/armQt5.9.1
======================================================================
1.解压Qt源码包, 注意不要解压在windows共享目录 进入源码包所在目录,执行如下指令:
tar xvf qt-everywhere-opensource-src-5.9.1.tar.xz -C /home/csgec/ 会在用户目录下,自动自成如下目录:
qt-everywhere-opensource-src-5.9.1
进入源码目录 cd /home/csgec/qt-everywhere-opensource-src-5.9.1
2.修改配置文件: vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
1.修改编译器名
把所有的arm-linux-gnueabi-xxx 格式修改为 arm-linux-xxx 总共需要修改8处
2.添加编译选项(添加到13左右即可)
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
修改完成,保存退出。
3.检查环境、配置选项
cd qtbase
./configure -prefix /usr/local/armQt5.9.1 -opensource -release -confirm-license -xplatform linux-arm-gnueabi-g++ -c++std c++11 -silent -nomake examples -nomake tools -no-dbus -noiconv -no-opengl -linuxfb
执行以上指令后,如果正常,会有如下提示:
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/usr/local/armQt5.9.1'.
4.编译: time make -j 4
5.安装: sudo make install
=========================================================================
armQt5.9.1.64bit.tar.gz (编译好的 Qt编译工具)
解压到 /usr/local
tar zxvf armQt5.9.1.tar.gz -C /usr/local
gec@ubuntu:/usr/local/armQt5.9.1$ ls
bin doc include lib mkspecs plugins qml translations
bin: 只执行程序的目录,包含了 交叉编译Qt程序的工具
lib :qt在 ARM开发板上运行的时候,用到的一些动态静态库。
还要在 PATH路径中添加一个路径:/usr/local/armQt5.9.1/bin 添加到最后一行:
export PATH=/usr/local/armQt5.9.1/bin:/usr/local/arm-2014.05/bin:$PATH
6. 测试 qmake 能不能用
gec@ubuntu:/usr/local/armQt5.9.1/bin$ qmake -v
QMake version 3.1
Using Qt version 5.9.1 in /usr/local/armQt5.9.1/lib
如果出现:
gec@ubuntu:/usr/local/armQt5.9.1/bin$ qmake -v
qmake: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qmake': No such file or directory
重启终端,才会执行 .bashrc 脚本
7. 编译qt项目
1). qmake -project 产生一个新的 pro 工程文件
在新的 pro 文件中的第一行加入: QT+= widgets
2). qmake 产生了一个 Makefile 文件
3). make 产生了一个 可以在 arm开发板上运行的 可执行文件: QQ
4). 把 QQ 可以执行的文件,下载到 开发板 ./QQ 运行Qt 程序 (报错,需要找动态库)
=========================================================================
以上的步骤已经搞定 QT的 arm 编译环境
以下还要在 ARM开发板上搞定运行环境
1. Qt 还要把 lib 目录复制到开发板
1). 进入 ubuntu
cd /usr/local/armQt5.9.1/
sudo tar zcvf armQtlib.tar.gz lib plugins/
2. 复制 armQtlib.tar.gz 到开发板
删除开发板这个目录中的文件:
rm -fr /usr/local/Qt-Embedded-5.7.0/*
3. 下载到开发板
U盘复制
mount /dev/sda1 /mnt
cd /mnt
4. 测试
chmod +x QQ
5. 字体的文件
开发板: cd /usr/share/fonts
下载字体文件(YaHei.ttf)到该目录
-----------------------------------------------------------------------------------------------------------------------------
触摸屏的矫正
sudo tar jxvf tslib-1.21.tar.bz2 cd tslib-1.21/
./configure --prefix=$PWD/tmp --host=arm-linux sudo su ---> root
export PATH=/usr/arm-2014/bin:$PATH
make 编译 触摸屏的库
make install 安装 : $PWD/tmp 生成几个目录
bin etc include lib share
tar czvf tslib.tar.gz bin etc lib
再把 tslib.tar.gz 下载到开发板: rz
放到 home就行了
把 tslib/etc/ts.conf 复制到了 /etc
把 tslib/lib/* 复制到了 /lib
在 qtconf.sh 下面添加:
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
当我们 执行 tslib/bin/ts_calibrate 矫正触摸屏之后, 就会在 etc目录生成一个 /etc/pointercal, 就是每次触摸屏启动的时候,会去调用的一个脚本。 这样就完成了你的触摸屏和 LCD 的矫正。