qt5.8源码下载:qt5.8源码下载地址
qt5.8编译需支持c++11标准,所以交叉编译工具链的版本需在4.8及以上;
交叉编译工具的下载:ARM交叉编译工具链下载地址
tar -xvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
vim /etc/environment,在文件中加入交叉编译工具的路径即可。
source /etc/environment;使配置生效。
编译环境搭建完成,开始进行qt源码的编译。
1.vim ./qt-everywhere-opensource-src-5.8.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
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv7-a //我的开发板是armv7的,所以根据开发板配置
QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv7-a
QMAKE_INCDIR += /usr/local/tslib1.4/include
QMAKE_LIBDIR += /usr/local/tslib1.4/lib
# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc -lts //-lts表示编译tslib库,如果没有tslib则不需要;arm-none-linux-gnueabi则是安装的交叉编译工具前缀
QMAKE_CXX = arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK = arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ -lts
# 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)
2../configure -prefix /usr/local/qt-5.8 -xplatform linux-arm-gnueabi-g++ -no-libproxy -release -no-glib -gui -widgets -qt-libjpeg -qt-libpng -no-pch -no-opengl -no-openssl -no-xinput2 -no-xcb-xlib -nomake tools -nomake tests -nomake examples -opensource
-qt-sqlite -continue -dbus
3.make
4.make install 或sudo make install(创建文件时会因权限不足可能会失败)
以上就完成了qt源码的编译,生成了需要的.so,将安装目录的所有文件拷进开发板,配置环境变量即可。