09_QT系统移植之交叉编译QT源码和触摸源码
QT系统移植之交叉编译QT源码和触摸源码
交叉编译QT源码
一.源码下载
QT官网下载:
http://download.qt.io/new_archive/qt/5.7/5.7.1/
二.编译环境
开发环境:Ubuntu16
编译器:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
三.编译触摸
触摸源码在这个视频目录下,我们解压触摸源码tslib-1.4.tar.gz,
安装依赖库:
apt-get install autoconf automake libtool pkg-config m4
然后执行以下命令:
cd tslib
./autogen.sh
./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-none-linux-gnueabi --prefix=/opt/tslib1.4 ac_cv_func_malloc_0_nonnull=yes
make
make install
然后打开 /opt/tslib1.4/etc/ts.conf 修改第二行如下图所示:
四.编译QT源码
使用“tar -vxf qt-everywhere-opensource-src-5.7.0”命令解压 QtE5.7 源码,并进入解压生成的“qt-everywhere-opensource-src-5.7.0”目录。
在qt-everywhere-opensource-src-5.7.0目录下,打开qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 文件,并修改为如下所示内容 ,因为一会我们要用到这个里面的内容,所以我们要先修改一下这里面的编译器。修改完成如下:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
然后我们需要用configure生成下Makefile,因为命令比较长,我们一把都是创建一个脚本,然后执行我们这个脚本生成Makefile。
使用“vi autoconfigure.sh”命令,新建“autoconfigure.sh”脚本。脚本内容如下所示。
#!/bin/sh
./configure \
-v \
-prefix /opt/qt5.7.0 \
-release \
-opensource \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-iconv \
-nomake examples \
-nomake tools \
-skip qtvirtualkeyboard \
-I/opt/tslib1.4/include \
-L/opt/tslib1.4/lib
exit
使用"chmod 777 autoconfigure.sh"修改一下权限
使用"./autoconfigure.sh"运行一下
接着使用编译命令“make”,之后使用安装命令“make install”。完成后,可以在“/opt”目录下可以查看到生成的“qt5.7.0”文件,如下图所示。