qt5.2交叉编译移植到arm(s5pv210)

1、下载qt-everywhere-opensource-src-5.2.0.tar.xz源码,链接:http://download.qt.io/archive/qt/5.2/5.2.0/single/

2、解压tar xJf tar xJf qt-everywhere-opensource-src-5.2.0.tar.xz

3、cd qt-everywhere-opensource-src-5.2.0/qtbase/mkspecs/linux-arm-gnueabi-g++/找到qmake.config,修改如下

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

#linuxfb: linux平台下的framebuffer设备

QT_QPA_DEFAULT_PLATFORM =linuxfb     #指定Qt运行平台 EGLFS, LinuxFB, KMS, DirectFB, Wayland,                 
QMAKE_CFLAGS_RELEASE    += -O2 -march=armv7-a         #O2为优化选项,march指处理器架构,s5pv210的架构是armv7
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-linux-gcc -lts
QMAKE_CXX               = arm-linux-g++ -lts
QMAKE_LINK              = arm-linux-g++ -lts
QMAKE_LINK_SHLIB        = arm-linux-g++ -lts

# 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)

4、切换到顶层目录并新建文件夹tmp

cd qt-everywhere-opensource-src-5.2.0/

mkdir tmp

5、编写自动化配置脚本automake.sh,内容如下:

#!/bin/bash

TSLIBINC="/home/mark/work/tool/tslib_ok/tslib-1.16/tmp/include"

TSLIBLIB="/home/mark/work/tool/tslib_ok/tslib-1.16/tmp/lib"

./configure -prefix /home/mark/work/tool/qt/qt-5.6-arm \
-xplatform linux-arm-gnueabi-g++ \
-opensource -release \
-confirm-license \
-shared -qt-zlib \
-qt-libjpeg \
-qreal float \
-qt-libpng \
-tslib \
-alsa \
-no-gif \
-no-iconv \
-no-opengl \
-no-cups \
-no-glib \
-no-dbus \
-no-rpath \
-no-sse2 \
-no-sse3 \
-no-sse4.1 \
-no-sse4.2 \
-no-avx \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake tools \
-nomake examples \
-I ${TSLIBINC} \
-L ${TSLIBLIB}

下面根据自己情况修改

-prefix /home/mark/work/tool/qt/qt-5.6-arm: 表面qt编译后安装到当前目录的tmp目录下

-tslib :表示加入触摸屏库

-I  $(TSLIBINC)  :指定tslib头文件目录

-L $(TSLIBLIB):指定tslib库文件目录

automake.sh下载链接附文件末尾

6、./automake.sh && make -j4

7、make install

8、将安装好的交叉编译库和头文件保存到根文件系统

 cp * /home/mark/work/nfs/qt   

修改根文件系统的/etc/profile

/bin/hostname TQ210
HOSTNAME='/bin/hostname'
PS1='[\h \w]\$'
export PS1 HOSTNAME

export TSLIB_ROOT=/qt/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointeral


#export QWS_MOUSE_PROTO=tslib:/dev/event0
#export QWS_SIZE=800*400
#export QTDIR=/qt/qt-5.6-arm
#export QT_QPA_FONTDIR=$QTDIR/lib/fonts/
#export LD_LIBRARY_PATH=/usr/lib:/lib:$TSLIB_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
#export QT_PLUGIN_PATH=$QTDIR/plugins/

#QT目录
export QTDIR=/qt/qt-5.6-arm
#库文件目录
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/lib:/lib:$LD_LIBRARY_PATH
#触摸屏库
export QT_QPA_GENERIC_PLUGINS=tslib
#字体
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
#触摸屏文件,长宽,终端
export 
QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmSize=800x480:offset=0x0:tty=/dev/tty0
export QT_QPA_FB_TSLIB=1
#触摸屏库
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so

指定QT运行环境变量。

automake.sh, qmake.sh, etc/profile下载地址:https://pan.baidu.com/s/1ls6X6MaMpsM4YQ2C1sCpjg

猜你喜欢

转载自blog.csdn.net/u011921617/article/details/84492653