Qt 交叉编译

参考:https://blog.csdn.net/ssz_1984357949/article/details/84964871

1. Qt 5.6.3 source code download:  http://download.qt.io/archive/qt/5.6/5.6.3/single/

2. 修改qmake文件

  解压源码到~下, 进入qt-everywhere-opensource-src-5.6.3/qtbase/mkspecs/linux-arm-gnueabi-g++下

  vi qmake.conf,将编译器改成目标编译器, 或提前设好编译器路径,这样就可以省去前面路径路分

#
 # qmake configuration for building with arm-linux-gnueabi-g++
 #
 
 MAKEFILE_GENERATOR      = UNIX
 CONFIG                 += incremental
 QMAKE_INCREMENTAL_STYLE = sublib
 
 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  = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
 QMAKE_CXX = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
 QMAKE_LINK = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
 QMAKE_LINK_SHLIB = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
 # modifications to linux.conf
 QMAKE_AR = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
 QMAKE_OBJCOPY = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
 QMAKE_NM = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
 QMAKE_STRIP = /opt/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip
 load(qt_config)
 
3. 配置configure选项,确定参数
./configure -prefix /opt/Qt5.6.3 \      //设置Qt安装的目录
     -confirm-license -opensource -compile-examples \
     -xplatform linux-arm-gnueabi-g++ \   //若不添加这个选项,默认编的是x86版本
     -sysroot /opt/poky/1.7.3/sysroots/cortexa7hf-vfp-poky-linux-gnueabi \   //设置系统目录
     -shared \
     -release  \                    //我用的Ubuntu14.04,内存原因,故选择了较小的release版本
     -optimized-qmake -opengl -pch -qt-libjpeg -qt-libpng -qt-zlib -tslib -no-linuxfb -no-sse2 \
  -no-openssl -no-cups -no-glib -no-xcb -no-separate-debug-info \
     -skip qtcanvas3d \    //skip 略过某模块,模块名即源码目录下的文件夹名
     -skip qt3d   -nomake examples   -nomake tools   -nomake tests   -no-iconv

 4. make && make install

  make -j4

  make install

posted @ 2019-06-11 23:10  HenryLiuY  阅读(678)  评论(0)    收藏  举报