移植Qt5.5.1和QtCreator3.5.1到 Linux + ARM
硬件是 NVDIA Tegra K1, 系统是Ubuntu 14.04。
通过atp-get install 可安装 5.2.1,版本太老。Qt官方也没有提供ARM版本,只好自己编译。
经过各种折腾,终于搞定。好记性不如烂笔头,记录下来。
步骤:
1. 下载 Qt5.5.1:http://download.qt.io/official_releases/qt/5.5/5.5.1/single/qt-everywhere-opensource-src-5.5.1.tar.gz
QtCreator3.5.1:http://download.qt.io/official_releases/qtcreator/3.5/3.5.1/qt-creator-opensource-src-3.5.1.tar.gz
将以上压缩包保存到Linux分区(ext3, ext4 ...),不能保存到FAT或NTFS分区。
2. tar -zxvf qt-everywhere-opensource-src-5.5.1.tar.gz
3. 先不要着急编译,有几个坑需要填。
1). 创建以下环境变量:
export SYSROOT
export PKG_CONFIG_SYSROOT_DIR=/
export PKG_CONFIG_LIBDIR=$SYSROOT/usr/lib/arm-linux-gnueabihf/pkgconfig:$SYSROOT/usr/share/pkgconfig:$SYSROOT/usr/lib/pkgconfig
export PKG_CONFIG_PATH=$SYSROOT/usr/lib/arm-linux-gnueabihf/pkgconfig:$SYSROOT/usr/share/pkgconfig:$SYSROOT/usr/lib/pkgconfig
2). 修改 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,如下:
########################################################
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 = gcc
QMAKE_CXX = g++
QMAKE_LINK = g++
QMAKE_LINK_SHLIB = g++
# modifications to linux.conf
QMAKE_AR = ar cqs
QMAKE_OBJCOPY = objcopy
QMAKE_NM = nm -P
QMAKE_STRIP = strip
load(qt_config)
################################################
3). 打开 qt.pro, 注掉 qtcanvas3d, qt3d , qtconnectivity, qtwayland 这几个模块。
4). 如果要使用摄像头,视频播放等多媒体功能,一定要安装好gstreamer/libgstreamer,可通过apt-get安装。
5). ./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /opt/qt551 -no-c++11
4. make
sudo make install.
经过漫长的等待,Qt编译成功。
将安装好的 bin 和 lib 目录 添加到环境变量 PATH 和 LD_LIBRARY_PATH 中去。
接下来编译QtCreator.
5.tar -zxvf qt-creator-opensource-src-3.5.1.tar.gz
6. 这里也有几个坑需要填
1). apt-get install botan* .
2). 将 src/libs/3rdparty/botan/botan.pri 内容修改如下:
INCLUDEPATH *= $$PWD/..
HEADERS += $$PWD/botan.h
DEFINES += USE_SYSTEM_BOTAN
#CONFIG += link_pkgconfig
#PKGCONFIG += botan-1.10
INCLUDEPATH += $$/usr/include/botan-1.10
LIBS += /usr/lib/libbotan-1.10.so
3). 回到刚才编译Qt的目录 qt-everywhere-opensource-src-5.5.1/qttools/src/designer/src,在各个子目录下运行qmake, make 和 sudo make install.
4). 来到刚才解压的目录 qt-creator-opensource-src, 运行 make.
又是漫长的等待....编译成功后,不需要安装。