交叉編譯Qt5.9.8


https://blog.csdn.net/jzzy_hony/article/details/80883473

https://blog.csdn.net/Namcodream521/article/details/83928913

 

1. 起源

目標平台為arm架構,無x64或windows安裝包

http://download.qt-project.org/archive/qt/5.9/5.9.8/

 

 

 2. 下載qt-everywhere

http://download.qt-project.org/archive/qt/5.9/5.9.8/single/

 

 

tar.xz,這是兩層壓縮,外面是xz壓縮,里層是tar壓縮,所以分兩步實現解壓。

# xz -d qt-everywhere-opensource-src-5.9.8.tar.xz
# tar -xvf qt-everywhere-opensource-src-5.9.8.tar.xz

也可以直接解壓
# tar -xvJf qt-everywhere-opensource-src-5.9.8.tar.xz

 解壓完成

 

3. linux - arm 交叉編譯器

 

 

3.1 vim ./qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf #編輯qmake.conf

 

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

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb                 #指定Qt顯示驅動方式
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)

QMAKE_INCDIR += /opt/tslib/include /opt/sqlite3/include   #指定頭文件,需預編譯
QMAKE_LIBDIR += /opt/tslib/lib /opt/sqlite3/lib           #指定庫文件,需預編譯


# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabi-gcc
QMAKE_CXX               = arm-linux-gnueabi-g++
QMAKE_LINK              = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabi-objcopy
QMAKE_NM                = arm-linux-gnueabi-nm -P
QMAKE_STRIP             = arm-linux-gnueabi-strip

load(qt_config)
~

 

3.2 問題:make:g++:命令未找到

sudo apt-get install g++

 

3.3 configure編譯配置

報錯1

Qt5.5.1 configure編譯選項,在這里不再介紹。
配置生成make文件時不報錯,就可以make了。

$ cd qt-everywhere-opensource-src-5.5.1/
$ sudo ./configure \
    -prefix /opt/qte5.5.1 \
    -confirm-license \
    -opensource \
      -shared \
    -release  \
    -make libs \
    -xplatform linux-arm-gnueabi-g++ \
    -optimized-qmake \
    -pch \
    -qt-sql-sqlite \
    -qt-libjpeg \
    -qt-libpng \
    -qt-zlib \
    -no-opengl \
    -no-sse2 \
    -no-openssl \
    -no-cups \
    -no-glib \
    -no-dbus \
    -no-xcb \
    -no-xcursor -no-xfixes -no-xrandr -no-xrender \
    -no-separate-debug-info \
    -no-fontconfig \
    -nomake examples -nomake tools -nomake tests -no-iconv \
    -tslib \
    -I/opt/tslib/include \
    -L/opt/tslib/lib 

 

 

ERROR: Invalid value given for boolean command line option 'sql-sqlite'.
ERROR: Unknown command line option '-no-xcursor'.

修改后

sudo ./configure \
    -prefix /opt/qte5.5.1 \
    -confirm-license \
    -opensource \
      -shared \
    -release  \
    -make libs \
    -xplatform linux-arm-gnueabi-g++ \
    -optimized-qmake \
    -pch \
    -qt-libjpeg \
    -qt-libpng \
    -qt-zlib \
    -no-opengl \
    -no-sse2 \
    -no-openssl \
    -no-cups \
    -no-glib \
    -no-dbus \
    -no-xcb \
    -no-separate-debug-info \
    -no-fontconfig \
    -nomake examples -nomake tools -nomake tests -no-iconv \
    -tslib \
    -I/opt/tslib/include \
    -L/opt/tslib/lib 

報錯2

 

 arm-linux-gnueabi-g++

 ==>

sudo apt-get  install gcc-arm-linux-gnueabi

sudo apt-get install g++-arm-linux-gnueabi

 

 報錯3

 

 

 

 

ERROR: Feature 'tslib' was enabled, but the pre-condition 'libs.tslib' failed.

 

ERROR: Feature 'tslib' was enabled, but the pre-condition 'libs.tslib' failed.
ERROR: Feature 'system-sqlite' was enabled, but the pre-condition 'libs.sqlite3' failed.

解決:tslib和sqlite3要預先編譯並指定路徑或者配置末尾加上-recheck-all選項。

 

ARM40-A5 GCC交叉編譯環境搭建

https://blog.csdn.net/jzzy_hony/article/details/80859450

 

ARM40之TSLIB移植

https://blog.csdn.net/jzzy_hony/article/details/80881597

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM