本次移植可以使用触摸屏。
首先下载源码包:
由于我之前pc机安装的是5.3.0,因此这里也下载linux的5.3.0
我选择的是:
接下来解压文件:
xz –d qt-everywhere-opensource-src-5.3.0.tar.xz
得到qt-everywhere-opensource-src-5.3.0.tar 继续解压:
tar –xvf qt-everywhere-opensource-src-5.3.0
进入qt目录,修改配置文件。本人是s3c2440arm9指令集是armv4t。
修改源码包目录下的/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf文件:
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
/********************************新加入***************************/
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE +=-O2 -march=armv4t
#这里指出指令局。跟芯片有关系,根据芯片改正-march=? -O2是编译器的优化等级QMAKE_CXXFLAGS_RELEASE +=-O2 -march=armv4t
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc //修改编译工具因人而异,后面的几个也要改
QMAKE_CXX = arm-linux-g++
QMAKE_LINK = arm-linux-g++
QMAKE_LINK_SHLIB = arm-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs
QMAKE_OBJCOPY =arm-linux-objcopy
QMAKE_NM = arm-linux-nm -P
QMAKE_STRIP = arm-linux-strip
load(qt_config)
修改完毕后保存退出,并在qt-everywhere-opensource-src-5.3.0/目录下为方便配置建立一个autoconfig.sh文件,内容为:
jason@jason-virtual-machine:~/work/qt-everywhere-opensource-src-5.3.0$vi autoconfig.sh
#!/bin/sh
./configure \
-v \
-prefix/work/tools/qt5 \
-release \
-make libs \
-xplatform linux-arm-gnueabi-g++\
-optimized-qmake\
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-iconv \ #应该要加上,不然提示iconv_openfailed
-no-xcursor-no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info\
-nomake examples-nomake tools \
-I/work/tools/tslib/include \ #这是是tslib的安装目录。因人而异
-L/work/tools/tslib/lib #注意连接符与文字之间必须有空格
exit
上面的这些内容就是告诉qt需要哪些模块,不需要那么模块,及其安装路径等等具体的可以输入./configure --help查看。
设置完成后,运行:
./autoconfig.sh
这里将会提示是否使用开源版本。及其是否接受条约。(第一个选择 o 第二个选择 yes)
完成后就可以:
make
出现了错误:
Project ERROR:Unknown module(s) in QT: quick-private
make[2]: ***[sub-quickwidgets-make_first-ordered] 错误 3
make[2]:正在离开目录 `/home/jason/work/qt-everywhere-opensource-src-5.3.0/qtdeclarative/src'
make[1]: ***[sub-src-make_first] 错误 2
make[1]:正在离开目录`/home/jason/work/qt-everywhere-opensource-src