QT交叉编译问题,文中附有宿主机和目标机的配置以及详细操作步骤
-
具体操作步骤是这样的
第一步:下载QT源码(5.12.5),并解压
第二步:通过rsync传输目标机的sysroot
第三步:进入源码目录,配置configure文件
第四步:进入源码目录,进入qtbase目录,进入mkespcs目录,进入linux-aarch64-gnu-g++目录,修改qmake.conf:
第五步:运行脚本,然后出现提示 ’make’
第六步:编译当qmake.conf改成下面这样的时候,configure都无法完成
用原本的qmake.conf就可以配置成功
最后编译报错:
gnu-g++ -o .obj/moc_qmlpreviewfilesystemwatcher.o .moc/moc_qmlpreviewfilesystemwatcher.cpp
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/hambes/qt-aarch64-build/qt-everywhere-src-5.15.2/qtbase/lib/libQt5Core.so: undefined reference todlerror@GLIBC_2.17' /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/hambes/qt-aarch64-build/qt-everywhere-src-5.15.2/qtbase/lib/libQt5Core.so: undefined reference to
dlsym@GLIBC_2.17'
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/hambes/qt-aarch64-build/qt-everywhere-src-5.15.2/qtbase/lib/libQt5Core.so: undefined reference todladdr@GLIBC_2.17' /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/hambes/qt-aarch64-build/qt-everywhere-src-5.15.2/qtbase/lib/libQt5Core.so: undefined reference to
dlclose@GLIBC_2.17'
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/hambes/qt-aarch64-build/qt-everywhere-src-5.15.2/qtbase/lib/libQt5Core.so: undefined reference to `dlopen@GLIBC_2.17'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:119:../../bin/qmltestrunner] 错误 1
make[3]: 离开目录“/home/hambes/qt-aarch64-build/qt-everywhere-src-5.15.2/qtdeclarative/tools/qmltestrunner”
make[2]: *** [Makefile:359:sub-qmltestrunner-make_first] 错误 2
make[2]: *** 正在等待未完成的任务....
兄弟们,我哪里搞错了😭😭😭😭