在iTop4412上移植Qt5.6.3

簡單記錄過程:

1,下載qt-everywhere-opensource-src-5.6.3源碼,地址:http://download.qt.io/archive/qt/

2,下載arm-linux-4.4.3的交叉編譯器,地址:https://download.csdn.net/download/immortal018/10421132

3,設置編譯器或者說平臺。通過xplatform參數指定編譯器,xplatform後面跟的參數實際上即是qtbase/mkspec下的文件夾的名字,修改該文件夾下的qmake.conf,修改後的內容如下所示:(path爲自己存放交叉編譯器4.4.3的具體路徑)

#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb
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                = /path/4.4.3/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX               = /path/4.4.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK              = /path/4.4.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = /path/4.4.3/bin/arm-none-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = /path/4.4.3/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /path/4.4.3/bin/arm-none-linux-gnueabi-objcopy
QMAKE_NM                = /path/4.4.3/bin/arm-none-linux-gnueabi-nm -P
QMAKE_STRIP             = /path/4.4.3/bin/arm-none-linux-gnueabi-strip
load(qt_config)

4,找到源碼目錄下的qt.pro,屏蔽掉下面兩句話:

addModule(qt3d, qtdeclarative qtimageformats)
addModule(qtcanvas3d, qtdeclarative) 

5,創建shell腳本,進行模塊裁剪,編譯:(具體的參數含義可以再終端輸入 ./configure --help 查看釋意)

        --prefix 是相對於這個目錄來安裝的,也就是說 make install 後,qt的庫安裝到了 /opt 目錄下

#bin/bash
echo yes | ./configure -opensource -release --prefix=/opt/QtE5.6 \
-qt-libpng -qt-zlib -qt-libjpeg -plugin-sql-sqlite -widgets -qt-sql-sqlite -make libs \
-silent -xplatform  linux-arm-gnueabi-g++ -nomake tools -nomake examples \
-no-xcb -mtdev -xinput2 -strip -linuxfb -confirm-license -qt-freetype -fontconfig \
-no-cups -no-iconv -no-qml-debug -no-dbus -no-largefile -no-opengl \
-nomake tests -no-openvg -no-egl -no-openssl -no-accessibility -tslib \
-no-sse2 -no-c++11 -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender

6,運行上面的 shell 腳本,將編譯生成的 QtE5.6 拷貝到目標板上。這裏放到/usr目錄下,並在目標板的/etc/profile中配置Qt5的環境變量,並添加電容觸摸屏的支持,如下所示:

export QTDIR=/usr/QtE                                      
export PATH=$QTDIR:$PATH  
export QT_QPA_FONTDIR=$QTDIR/lib/fonts  
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins  
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=180
#由於Qt5本身就支持多點觸摸,所以直接使用Qt提供的evdevtouch插件庫,無需另外再額外編譯tslib
export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event2  
export LD_LIBRARY_PATH=/lib:$QTDIR/lib:$QTDIR/x11/lib:$QTDIR/tslib:$QTDIR/mtdev/lib

7,至此,觸摸屏就可以使用了,直接執行./app 即可,無需其他參數


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章