你好!这里是风筝的博客,
欢迎和我一起交流。
最近移植QT到arm板子上,发现一些问题,记录一下:
在ubuntu上交叉编译QT时执行./config之后发现错误:
Failed to process makespec for platform 'linux-arm-gnueabi-g++'
也就是配置QT时候出现 Failed to process makespec for platform ‘linux-arm-gnueabi-g++’
因为移植QT时是参考这篇文章的:
移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)
因为板子是A7板子,所以配置时:
vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
#关于arch部分:
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv7-a -mtune=cortex-a9
QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv7-a -mtune=cortex-a9
就是这里了导致的错误,应该配置为:
#关于arch部分:
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
这样配置就可以了,QT配置成功之后直接make && make install
等待漫长的编译安装即可。
然后把装好的QT放到板子文件系统里并设置环境即可,参考上面的文章。
我的配置如下:将配置写成了脚本,直接执行即可:
################################################
# File Name: build.sh
# Created Time: Tue 26 Mar 2019 08:07:01 AM PDT
################################################
#!/bin/bash
./configure -prefix /work/qt/qt_arm \
-opensource \
-release \
-confirm-license \
-xplatform linux-arm-gnueabi-g++ \
-shared \
-no-qml-debug \
-no-gtkstyle \
-qt-zlib \
-no-gif \
-qt-libjpeg \
-no-nis \
-no-opengl \
-no-glib \
-no-dbus \
-no-rpath \
-no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 \
-no-avx \
-no-openssl \
-nomake tools \
-qreal float \
-qt-libpng \
-nomake examples \
-skip qtcanvas3d \
-skip qt3d \
-no-sql-sqlite \
-no-sql-sqlite2 \
-no-sql-db2 \
-no-sql-ibase \
-no-sql-oci \
-no-sql-odbc \
-no-sql-tds \
-no-accessibility \
-no-pkg-config \
-no-xrandr \
-no-xrender \
-nomake tests \
-v \
因为我没有触摸屏,所以没有用libts,这个配置把大部分东西都去掉了,这样QT比较精简。
最后我把这个配置脚本和安装好之后的QT上传一下吧:
交叉编译QT5.6