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