网上关于ARM Linux移植比较多,在此把qt mips linux移植过程记录如下。
参考https://blog.csdn.net/yihui8/article/details/39503645
目标板:MIPS Openwrt
宿主:Ubuntu12.04(已通过apt-get安装必要的工具)
一、准备交叉编译链
交叉编译链通常由开发板厂商提供。将交叉编译链解压,然后把其中bin目录放到系统路径下。
二、configure
1、下载Qt源码http://download.qt.io/archive/qt/5.3/5.3.2/single/
2、我的编译选项,这里面去掉了很多东西,包括界面。可以通过./configure –help查看每一项是什么意思,根据自己需要添加
./configure -release -xplatform linux-mips-g++ -confirm-license -opensource -shared -no-qml-debug -no-opengl -no-audio-backend -no-openssl -no-sql-sqlite -no-libjpeg -no-libpng -no-gif -no-journald -no-mtdev -no-freetype -no-harfbuzz -no-glib -no-gtkstyle -no-gui -no-widgets -no-iconv -no-tslib -no-linuxfb -no-dbus -qt-zlib -nomake examples
其中-xplatform linux-mips-g++就是交叉编译要找的目录
最原始的代码里是没有linux-mips-g++这个目录的所以要自己添加
在qtbase/mkspecs下创建linux-mips-g++文件夹
然后添加文件qmake.conf和qplatformdef.h两个文件
qmake.conf按照如下编写(mipsel-openwrt-linux-是我的交叉编译工具前缀,换成你自己的)
# qmake configuration for building with mipsel-openwrt-linux-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
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 = mipsel-openwrt-linux-gcc
QMAKE_CXX = mipsel-openwrt-linux-g++
QMAKE_CFLAGS += -mips32
QMAKE_CXXFLAGS += -mips32
QMAKE_LINK = mipsel-openwrt-linux-g++
QMAKE_LINK_SHLIB = mipsel-openwrt-linux-g++
# modifications to linux.conf
QMAKE_AR = mipsel-openwrt-linux-ar cqs
QMAKE_OBJCOPY = mipsel-openwrt-linux-objcopy
QMAKE_STRIP = mipsel-openwrt-linux-strip
load(qt_config)
qplatformdef.h从qtbase/mkspecs/linux-arm-gnueabi-g++目录下拷贝即可
三、make
然后make,make install就可以了,默认安装到/usr/local/Qt5.3.2
四、我所遇到的问题
2.缺少icu库,icu库要与qt版本对应。交叉编译icu52.1,安装到交叉编译链根目录下