3、 Qt-everywhere移植
1) 下載源碼qt-everywhere-opensource-src-5.3.1.tar.xz到Linux任意目錄下
2)下載路徑:
//www.qt.io/download-open-source/#section-2
3) 解壓源碼
執行:
$ tar xvf qt-everywhere-opensource-src-5.3.1.tar.xz
4) 修改源碼
修改源碼中qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf內容,修改后在生成的qmake默認配置中工具鏈為我們指定的工具鏈。
13 # modifications to g++.conf
14 QMAKE_CC = arm-linux-gnueabi-gcc
15 QMAKE_CXX = arm-linux-gnueabi-g++
16 QMAKE_LINK = arm-linux-gnueabi-g++
17 QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
18
19 # modifications to linux.conf
20 QMAKE_AR = arm-linux-gnueabi-ar cqs
21 QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
22 QMAKE_NM = arm-linux-gnueabi-nm -P
23 QMAKE_STRIP = arm-linux-gnueabi-strip
為
13 # modifications to g++.conf
14 QMAKE_CC = arm-none-linux-gnueabi-gcc
15 QMAKE_CXX = arm-none-linux-gnueabi-g++
16 QMAKE_LINK = arm-none-linux-gnueabi-g++
17 QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
18
19 # modifications to linux.conf
20 QMAKE_AR = arm-none-linux-gnueabi-ar cqs
21 QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
22 QMAKE_NM = arm-none-linux-gnueabi-nm -P
23 QMAKE_STRIP = arm-none-linux-gnueabi-strip
5) 拷貝configure.sh到解壓后的源碼目錄下
6) 配置源碼
創建configure.sh
在文件中添加:
./configure -prefix /opt/qt -release \
-opensource -qt-libpng -qt-libjpeg -plugin-sql-sqlite -widgets -qt-sql-sqlite \
-make libs -no-cups -no-nis -no-iconv -no-dbus -no-openssl -no-iconv \
-no-accessibility -no-sse2 -silent -xplatform \
linux-arm-gnueabi-g++ -nomake tools -nomake examples -nomake tests \
-qt-freetype -no-glib -strip -linuxfb -plugindir \
/opt/qt/plugin
這個配置與前幾個版本有一定的區別,在以前版本里多數會有一個tslib的選項,且在移植linux內核觸摸屏驅動時如果是多點觸摸需要修改為單點觸摸,在這個版本tslib和修改觸摸屏驅動已經沒有必要了,使用Qt默認觸摸屏插件就能完美的支持當下使用多的多點式電容觸摸屏。
執行:
$ chmod 777 configure.sh
$ ./configure.sh
輸入”yes”后按回車繼續
屬性如下內容便是配置成功
7) 編譯安裝源碼
執行:
添加工具鏈路徑到環境變量中,本例使用工具鏈版本為4.6.4
$ export PATH=$PATH: /usr/local/toolchain/toolchain-4.6.4/bin/
$ make
編譯過程中沒有提示錯誤即可實行下邊操作
$ sudo make install
安裝后會在/opt/目錄下生成qt目錄。
8) 根文件系統修改
首先需要一個可以使用的根文件系統,標準Linux根文件系統即可。
解壓標準根文件rootfs.tar.xz到Linux下/source/目錄下
$ tar xvf rootfs.tar.xz -C /source
將上文編譯好的qt庫拷貝到根文件系統中
$ cp /opt/qt /source/rootfs -a
修改根文件系統中的profile文件添加如下內容:
$ vi /source/rootfs/etc/profile
添加如下內容:
export QTDIR=/opt/qt
export PATH=$QTDIR:$PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugin
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export TSDEVICE=/dev/input/event4
export QT_QPA_GENERIC_PLUGINS=evdevtouch:$TSDEVICE
export QWS_MOUSE_PROTO=evdevtouch:$TSDEVICE
export set QWS_DISPLAY=LinuxFb:/dev/fb0
#export set QWS_SIZE=800x600
export set QWS_SIZE=1024x600
export set QWS_DISPLAY="LinuxFb:mmWidth300:mmHeight400:0"
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set
LD_LIBRARY_PATH=$QTDIR:$QTDIR/lib/:$QT_QPA_PLATFORM_PLUGIN_PATH:$QT_QPA_FONTDIR:$LD_LIBRARY_PATH