QT下载:http://download.qt-project.org/
qt-everywhere-opensource-src-4.8.4.tar.gz:http://download.qt-project.org/archive/qt/
tslib下载:https://github.com/libts/tslib/releases
编译安装QT-X11-4.5.3
QT-X11-4.5.3是运行于linux平台下用于仿真QT应用程序的软件,这样你便可以在linux平台下把你应用程序都调试好,然后再利用QT4.5.3把应用程序编译成ARM版本下载至开发板,这样你就可以在开发板上运行你的QT应用程序了。
下面是安装步骤:
1、先安装以下包(否则会报错 Basic XLib functionality test failed!):
sudo apt-get install libx11-dev libxext-dev libxtst-dev
2、把qt-x11-opensource-src-4.5.3.tar.gz 拷贝到指定目录下,然后执行以下命令:
#tar zxvf qt-x11-opensource-src-4.5.3.tar.gz
#cd qt-x11-opensource-src-4.5.3
#./configure
#make //一般用时2-3小时,如果你的机子配置不太低的情况下
#make install
一、编译安装tslib-1.0
参考这篇文章:tslib移植实践
二、QT库移植
准备:qt-everywhere-opensource-src-4.8.4.tar.gz
1、解压并进入qt-everywhere-opensource-src-4.8.4。
#tar xzf qt-everywhere-opensource-src-4.8.4.tar.gz
#cd qt-everywhere-opensource-src-4.8.4
2、修改 QT目录下的mkspecs/qws/linux-arm-g++/qmake.conf,添加如下内容(让交叉编译工具链能找到tslib的库和头文件):
# tslib
QMAKE_INCDIR =/usr/tslib4arm/include
QMAKE_LIBDIR =/usr/tslib4arm/lib
QMAKE_LFLAGS =-WI,-rpath,/usr/tslib4arm/lib
3、配置、编译和安装Qt,可以编写以下脚本并运行。Qt安装成功可在/opt/framework/qt/arm路径下看到bin、lib、include等目录。
#!/bin/sh
#mkdir -vp /opt/framework/qt/arm
#echo yes | ./configure -prefix /opt/framework/qt/arm \
#-opensource -enbedded arm \
#-xplatform qws/linux-arm-g++ \
#-no-webkit -qt-libtiff -qt-libmng \
#-qt-mouse-tslib -qt-mouse-pc \
#-no-mouse-linuxtp -no-neon \
#-nomake examples \
#-nomake docs \
#-nomake demos \
#-nomake tools
echo yes | ./configure -prefix /opt/framework/qt/arm -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon -nomake examples -nomake docs -nomake demos -nomake tools
echo "config finished!"
make && make install
4、在开发板根文件系统opt下创建/opt/framework/qt/arm目录,将/opt/framework/qt/arm目录下的lib目录复制到开发板根文件系统的该目录下。
cd /nf s/rootf
mkdir -p opt/framework/qt/arm
cp /opt/framework/qt/arm/lib ./ -dr
5、编写以下脚本,命名为setenvqt,此脚本用来为开发板设置Qt运行环境。
注意“等号左右边不能有空格,否则Linux会提示错误 bad variable name”
#!/bin/sh
export QWS_DISPLAY=:1
export QT_QWS_FONTDIR=/opt/framework/qt/arm/lib/fonts
export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/event0"
export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root
echo "qt init finished!"
将脚本移到开发板根文件系统usr/sbin目录下,在etc/profile中加入
. setenv4qt
这样开发板开机就能加载setenv4qt中的环境变量了。
根文件系统编译镜像指令:mkyaffs2image-128M rootfs rootfs_qt.img
三、嵌入式Qt程序测试
创建一个Helloworld测试程序。
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
int main(int argc, char* argv[])
{
QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理
QMainWindow w; //定义一个QmainWindow主窗口对象w
QPushButton b(&w); //通过&w,在主窗口上定义QpushButton按钮对象b
b.setText("Yangfeiwu.Today is 20190927."); //通过b对象的成员函数setText(),设置按钮名字为Hello QT
w.show(); //显示主窗口
return a.exec(); //通过exec()执行程序以及消息处理
}
编译测试程序:
/opt/framework/qt/arm/bin/qmake -project
/opt/framework/qt/arm/bin/qmake -makefile
make
下载到开发板根目录,去开发板执行指令 /HelloQt -qws -fn SIMHEI。
如果报错libts-0.0找不到,则执行以下指令:
#find -name libts-0.0*
#ln -s /usr/tslib4arm/lib/libts-0.0.so.0 ./opt/framework/qt/arm/lib/libts-0.0.so.0
再次执行,就启动qt程序了。