作者: 使徒保罗
邮箱: 297329588@qq.com
声明: 欢迎交流学习,如有任何疑问,请通过邮箱联系本人
应用场景:海思嵌入式开发板使用静态qt版本库
开发环境:ubuntu 14.04 32位
功能: 交叉编译qt5.7.0版本静态库
版权声明:本文为CSDN博主「使徒保罗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
1.下载qt源码
qt-everywhere-opensource-src-5.7.0.tar
2.解压,配置交叉编译文件
在源码目录qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs下面,新拷贝一份创建交叉编译器配置目录,可以自定义命名,本文命名为linux-arm-hisiv300-g++:
cd 到qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs
cp linux-arm-gnueabi-g++ ./linux-arm-hisiv300-g++ -r
然后修改linux-arm-hisiv300-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)
# modifications to g++.conf
QMAKE_CC = arm-hisiv300-linux-gcc
QMAKE_CXX = arm-hisiv300-linux-g++
QMAKE_LINK = arm-hisiv300-linux-g++
QMAKE_LINK_SHLIB = arm-hisiv300-linux-g++
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -fpermissive
QMAKE_CXXFLAGS += -fpermissive
# modifications to linux.conf
QMAKE_AR = arm-hisiv300-linux-ar cqs
QMAKE_OBJCOPY = arm-hisiv300-linux-objcopy
QMAKE_NM = arm-hisiv300-linux-nm -P
QMAKE_STRIP = arm-hisiv300-linux-strip
load(qt_config)
3.根据自身需要添加脚本文件,修改configure选项
cd 到源码跟目录,创建configure脚本文件,如图所示
内容如下:
./configure \
-prefix /home/vast/source/qt5.7.0_3531a_bin \
-xplatform linux-arm-hisiv300-g++ \
-release \
-optimized-qmake \
-opensource \
-confirm-license \
-c++std c++11 \
-static \
-no-largefile \
-accessibility \
-qt-sql-sqlite \
-no-qml-debug \
-no-sse2 \
-qt-zlib \
-mtdev \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-no-harfbuzz \
-no-libproxy \
-qt-pcre \
-no-xcb-xlib \
-no-glib \
-no-pulseaudio \
-no-alsa \
-no-gtk \
-make libs \
-nomake examples \
-nomake tools \
-nomake tests \
-skip qtcanvas3d \
-skip qt3d \
-skip qtdeclarative \
-skip qtdoc \
-qreal float \
-silent \
-no-nis \
-no-cups \
-evdev \
-no-opengl
4.执行qt570_configure-Hi3531A.sh脚本
成功后make && make install到相应目录