在使用香橙派时用到了qtlocation模块,但是开发板没有响应的库,需要自己移植
1.使用命令 *** 查看版本
开发板使用5.15.3版本Qt,需要下载相同版本 https://qt-mirror.dannhauer.de/archive/qt/5.15/
2.下载后解压到主机 ~/tools/下 tar -xvf ***
3.修改头文件,否则报错
src/corelib/global/qglobal.h 里添加limits头文件
# include
4.修改conf文件
/home/yue/tools/qt-everywhere-src-5.15.3/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf文件 填入自己的交叉编译链
# modifications to g++.conf
QMAKE_CC = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc
QMAKE_CXX = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++
QMAKE_LINK = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++
QMAKE_LINK_SHLIB = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-ar cqs
QMAKE_OBJCOPY = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-objcopy
QMAKE_NM = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-nm -P
QMAKE_STRIP = /home/yue/sdk/orangepi-build/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-strip
5.在qt目录下新建autoconfig.sh文件,并添加可执行属性 sudo chmod +x autoconfig.sh
./configure \
-prefix /opt/qt-5.15.3 \
-release \
-feature-library \
-opensource \
-xplatform linux-aarch64-gnu-g++ \
-make libs \
-optimized-qmake \
-no-opengl \
-pch \
-shared \
-qt-libjpeg \
-qt-zlib \
-qt-libpng
6.先清理下
sudo make distclean -j5
7.执行配置文件
sudo ./autoconfig.sh
8.编译
sudo gmake -j5
9.安装
sudo gmake install -j5
10.将库文件拷贝到开发板, 这里使用了部分正点原子的库,如果自己生成需要修改buildroot
cd /opt/atk-dlrk356x-toolchain/aarch64-buildroot-linux-gnu/sysroot/usr/lib/
scp \
libprotobuf.so.16 \
libopencv_gapi.so.405 \
libjpeg.so.62 \
libmali_hook.so.1 \
libopencv_highgui.so.405 \
libopencv_ml.so.405 \
libopencv_objdetect.so.405 \
libopencv_photo.so.405 \
libopencv_stitching.so.405 \
libopencv_video.so.405 \
libopencv_calib3d.so.405 \
libopencv_features2d.so.405 \
libopencv_dnn.so.405 \
libopencv_flann.so.405 \
libopencv_videoio.so.405 \
libopencv_imgcodecs.so.405 \
libopencv_freetype.so.405 \
libopencv_imgproc.so.405 \
libopencv_core.so.405 \
libQt5MultimediaWidgets.so.5 \
libQt5Multimedia.so.5 \
libQt5SerialPort.so.5 \
libopencv_video.so.405 \
libopencv_calib3d.so.405 \
libopencv_imgproc.so.405 \
libopencv_core.so.405 \
libQt5Test.so.5 \
libopencv_imgproc.so.405 \
libopencv_core.so.405 \
libopencv_core.so.405 \
libopencv_dnn.so.405 \
libopencv_calib3d.so.405 \
libopencv_imgproc.so.405 \
libopencv_core.so.405 \
libopencv_imgproc.so.405 \
libopencv_core.so.405 root@192.168.0.107:/usr/lib/aarch64-linux-gnu
cd /opt/qt-5.15.3/lib
sudo scp libQt5Location.so* libQt5Positioning* libQt5QuickTemplates2.so.5 libQt5QuickControls2.so.5 libQt5Concurrent.so.5 root@192.168.0.101:/usr/lib/aarch64-linux-gnu
cd /opt/qt-5.15.3/qml
sudo scp -r QtLocation root@192.168.0.107:/usr/lib/aarch64-linux-gnu/qt5/qml
sudo scp -r QtPositioning root@192.168.0.107:/usr/lib/aarch64-linux-gnu/qt5/qml
sudo scp -r QtQuick root@192.168.0.107:/usr/lib/aarch64-linux-gnu/qt5/qml
cd /opt/qt-5.15.3/plugins
scp -r ./geoservices root@192.168.0.107:/usr/lib/aarch64-linux-gnu/qt5/plugins/