一、下载QT源码
QT各源码下载地址:http://download.qt.io/archive/qt/ (我这里下载的QT5.12.5)
二、编译源码
打开虚拟机解压qt源码并进入qt目录
tar -xvJf qt-everywhere-src-5.12.5.tar.xz
cd qt-everywhere-src-5.12.5
配置编译模块 我这边是写成了一个脚本a.sh 内容如下:
QT_INSTALL_DIR=/opt/tool/arm-linux-gcc5.31/
CROSS_COMPILE=/opt/tool/arm-linux-gcc5.31/bin/arm-linux-gnueabi-gcc
SYSROOT_DIR=/opt/tool/arm-linux-gcc5.31/sysroot
./configure \
-opensource \
-confirm-license \
-extprefix $QT_INSTALL_DIR \
-sysroot $SYSROOT_DIR \
-xplatform linux-arm-gnueabi-g++ \
-device-option CROSS_COMPILE=$CROSS_COMPILE \
-R /usr/lib \
-no-strip \
-c++std c++11 \
-shared \
-nomake examples \
-accessibility \
-no-sql-db2 \
-no-sql-ibase \
-no-sql-mysql \
-no-sql-oci \
-no-sql-odbc \
-no-sql-psql \
-no-sql-sqlite2 \
-no-sql-tds \
-no-sql-sqlite \
-plugin-sql-sqlite \
-no-sse2 \
-no-sse3 \
-no-ssse3 \
-no-sse4.1 \
-no-sse4.2 \
-no-avx \
-no-avx2 \
-no-mips_dsp \
-no-mips_dspr2 \
-qt-zlib \
-no-journald \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-qt-harfbuzz \
-no-openssl \
-no-xcb-xlib \
-no-glib \
-no-pulseaudio \
-alsa \
-gui \
-widgets \
-v \
-optimized-qmake \
-no-cups \
-no-iconv \
-evdev \
-no-icu \
-no-fontconfig \
-no-strip \
-pch \
-dbus \
-no-use-gold-linker \
-no-directfb \
-no-eglfs \
-linuxfb \
-no-kms \
-no-opengl \
-no-vulkan \
-no-system-proxies \
-no-slog2 \
-no-pps \
-no-imf \
-no-lgmon \
-tslib \
-skip qt3d \
-skip qtwebengine \
-skip qtwebview \
-skip qtx11extras \
-nomake tests \
-nomake tools
这里的QT_INSTALL_DIR是安装目录 CROSS_COMPILE是指定编译器 SYSROOT_DIR是开发板文件系统的sysroot(这里我把安装目录跟交叉编译器放在一个路径)
这里跳过了 -skip qt3d \ -skip qtwebengine \ -skip qtwebview \ -skip qtx11extras \这几个模块 需要的话删除即可
给脚本权限并执行脚本
chmod 777 a.sh && ./a.sh
配置完毕执行 等待系统编译完 编译速度取决于电脑配置
make -j16 && sudo make install
**编译完成后可以看到安装路径下多出来了qt的库 **
执行一下
qmake -v
现在我们就构建成功了qt5.12.5+交叉编译器了
三、把QT环境移植到arm开发板
由于我这边是分开构建的 你们可以再configure的时候不要跟交叉编译器放在一个目录 另外指定个Qt_5.12目录
编译完成后就会的到Qt_5.12.5的库了
接着我们把Qt_5.12.5目录拷贝在开发板上面 我这边放在了/usr/local/目录下
然后用个脚本qt_env.sh配置环境变量 内容如下
export QTDIR=/usr/local/Qt_5.12.5
if [ -d $QTDIR ];then
export QT_ROOT=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib/cedarx/:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/fonts
export QML2_IMPORT_PATH=/usr/local/Qt_5.12.5/qml
export QML2_PACKAGE_PATH=/usr/local/Qt_5.12.5/qml
export QT_QPA_PLATFORM=linuxfb
#export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
#export QT_QPA_FB_HIDECURSOR=1
#export QT_QPA_EGLFS_HIDECURSOR=1
#export QT_QPA_EGLFS_ROTATION=90
export QWS_MOUSE_PROTO=
#export DBUS_SESSION_BUS_ADDRESS=`cat /tmp/dbusaddr`
mkdir -p /dev/shm
ulimit -c unlimited
echo "find qt5 installed done"
fi
设置一下环境变量
source /qt_env.sh
再运行程序即可