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)
# 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++
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
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 \
-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
-skip qtcanvas3d \ //skip 略过某模块,模块名即源码目录下的文件夹名
-skip qt3d -nomake examples -nomake tools -nomake tests -no-iconv
4. make && make install
make -j4
make install