09_QT系統移植之交叉編譯QT原始碼和觸控原始碼

爱吃冰激凌的黄某某發表於2024-04-17

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 修改第二行如下圖所示:

img

四.編譯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”檔案,如下圖所示。

相關文章