准备好MIPS交叉编译器
比如君正X2000的编译器 mips-gcc720-glibc226
将其拷贝到/opt目录下,然后设置好环境变量PATH。
在~/.bashrc中加上
export PATH=/opt/mips-gcc720-glibc226/bin:$PATH
预编译tslib
tslib是一个用于触摸事件的开源的库,可以从github上下载,我们用的是1.22版本。
Qt依赖它来实现触屏事件
./autogen.sh
./configure --host=mips-linux-gnu --prefix=/opt/Qt5.9.0/tslib-1.22
make
make install
./configure --host=mips-linux-gnu --prefix=/opt/Qt5.9.0/tslib-1.22 CC=/opt/mips-gcc720-glibc226/bin/mips-linux-gnu-gcc
加上加上编译器的绝对路径
预编译sqlite3
下载sqlite-autoconf-3340100.tar.gz文件
./configure --host=mips-linux-gnu --prefix=/opt/Qt5.9.0/sqlite3
make
make install
注意:因为/opt目录只有root权限能够写,所以在make install 的时候会提示permission error,这时在make install前加sudo是没用的,还是会报错误。所以不如直接在root用户下编译
交叉编译Qt
此处我们采用的是Qt5.9.0版本,解压之后修改qtbase/mkspecs/devices/linux-mipsel-ci20-g++/qmake.conf
#
# qmake configuration for building with mips-mti-linux-gnu-g++
# build for CI20 targets X11
#
CROSS_COMPILE = mips-linux-gnu- # 改成我们实际使用的交叉编译器
include(../common/linux_device_pre.conf)
QMAKE_CFLAGS = -EL -march=mips32r2
QMAKE_CXXFLAGS = $${QMAKE_CFLAGS}
QMAKE_LFLAGS = -EL
QT_QPA_DEFAULT_PLATFORM = linuxfb # xcb,因为没有GPU,所以默认使用linuxfb
QMAKE_LIBS_EGL = -lEGL -lIMGegl -lusc
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL}
include(../common/linux_device_post.conf)
load(qt_config)
在根目录下创建build.sh文件
./configure -prefix /opt/Qt5.9.0/Qt5 \
-opensource \
-release \
-shared \
-pch \
-sqlite \
-I/opt/Qt5.9.0/sqlite3/include \
-L/opt/Qt5.9.0/sqlite3/lib \
-qt-zlib \
-qt-libjpeg \
-qt-libpng \
-qt-freetype \
-no-openssl \
-gui \
-widgets \
-nomake examples \
-nomake tests \
-nomake tools \
-optimized-qmake \